<rss version="2.0">
  <channel>
    <title>Blog</title>
    <link>https://vahidnaderi.com/</link>
    <description><![CDATA[I write about the things I'm intrested in, mostly the things I'm learning about]]></description>
    <item>
      <title>And this is 40</title>
      <link>https://vahidnaderi.com/blog/and-this-is-40</link>
      <description><![CDATA[<p>It's hard to believe that I'm turning 40 today, looks like an odd number for an age even if it's even(pun intended) my perception of this day was a bit different from what it is now. I thought at this age I would be more stable and have more confidence in my understanding of how the world works. I expected a more established family with kids but I'm not even living with my wife yet. I thought that money would be no matter at this time, but it's still a major issue.</p><p>On the other hand, I thought I would be a CEO which I am. I'm healthy. I have a beautiful lovely wife. I'm working with my brothers in our company which was a childhood dream. Actually, I have whatever I wanted but the only thing is that it's not at the level that I hoped. We have our company the only thing is it's not as big as I hoped. I have my beautiful wife but not being together as much as I expected and I want. With these, I can say that I'm on the right path but have not arrived yet.</p><p>It's seems like with age the passing of the years accelerate like the expansion of the universe.</p><p>And overall it's not as dramatic as I&nbsp; thought like turning 20 or 30 or maybe even 50. But I welcome myself to my 5th decade of my life.</p><p><br></p>]]></description>
      <pubDate>Mon, 23 Dec 2024 06:23:33 GMT</pubDate>
      <guid isPermaLink="true">https://vahidnaderi.com/blog/and-this-is-40</guid>
    </item>
    <item>
      <title>Social networking apps or time eating monsters!</title>
      <link>https://vahidnaderi.com/blog/social-network-apps-or-time-eating-monsters</link>
      <description><![CDATA[<p class="MsoNormal">Social networks and dopamine cravings are eating up our time without us even knowing it. Sure, everyone knows that they spend a good amount of their waking hours scrolling through social feeds, but that’s only the obvious aspect. The hidden part becomes clear only when you try something like dopamine fasting or social network fasting. That’s when you actually realize how much more time you have for other things. The time that you didn’t know you had.</p><p class="MsoNormal">Another thing is that when you try dopamine fasting, the things that seemed undoable or too much effort or even not that important start to feel achievable and worthy of your time and effort. It’s sad that we waste so much time on social networks.</p><p class="MsoNormal">I don’t find social apps useful at all. They may be popular and profitable, but they are not right. They are just wrong. They make you do things that you don’t want to do without any significant benefit.</p><p class="MsoNormal">One of the problems with social apps is that they are so shallow and they just encourage shallow content. The whole system rewards the wrong things. It just gives you dopamine for seeing a post and moving to the next one. It rewards you with the excitement of being viewed and being liked. It also uses sex appeal to attract audience too much. TikTok is the worst in that regard.<br></p><p class="MsoNormal">YouTube is a little different. It’s a social app that has a good side too. You can spend hours there watching cats and nonsense, but you can also learn things on this platform. Actually, many people use YouTube as a learning platform. And it has good stuff.</p><p>









</p><p class="MsoNormal">I know social apps can be changed and they will be changed. But meanwhile, we need to protect our time, our peace of mind and sanity from them. One of the solutions can be an AI assistant that helps us to explore only the things that we want and really care for and can filter out many other things. Something that we can train in our conscious times that can help us in our down times. Something that can prevent us from going down the rabbit hole and spending our time doing things that we think are useless. And something that can replace them wisely with things that can actually be valuable and help us to develop useful habits.</p>]]></description>
      <pubDate>Sat, 26 Aug 2023 05:45:57 GMT</pubDate>
      <guid isPermaLink="true">https://vahidnaderi.com/blog/social-network-apps-or-time-eating-monsters</guid>
    </item>
    <item>
      <title>You don't need to read Clean Code in 2023</title>
      <link>https://vahidnaderi.com/blog/you-don-t-need-to-read-clean-code-in-2023</link>
      <description><![CDATA[<p style="margin-top: 0">If you are an experienced developer you don't really
need to read the book clean code by Robert C. Martin now. Of course if you haven’t
yet. At least you don't need to read the whole book. Recently we have reviewed
clean code in our company’s weekly training program, and we came to conclusion
that most of its practices are woven to the tools that we are using daily and
tailored as conventions and styles in most code bases. It's a bit like watching
the movie “2001: A Space Odyssey” in 2023. It's an amazing book for it's time
but the ideas are so repeated in other books and tools that they don't look
novel anymore. So, I listed the parts that still worth your while.</p><p style="margin-top: 0"></p><p style="margin-top: 0">And here
are the other parts that you still may want to read from the book.</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.25in; text-indent: -0.25in"><span style="font-family: Symbol">·<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span dir="LTR"></span>Good Naming: Avoiding Hungarian notation is a repeated advice
everywhere. and yes&nbsp;</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.75in; text-indent: -0.25in"><span style="font-family: &quot;Courier New&quot;">o<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;
</span></span><span dir="LTR"></span>Use Pronounceable Names</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.75in; text-indent: -0.25in"><span style="font-family: &quot;Courier New&quot;">o<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;
</span></span><span dir="LTR"></span>Pick One Word per
Concept&nbsp;</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.75in; text-indent: -0.25in"><span style="font-family: &quot;Courier New&quot;">o<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;
</span></span><span dir="LTR"></span>Don’t Pun</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.75in; text-indent: -0.25in"><span style="font-family: &quot;Courier New&quot;">o<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;
</span></span><span dir="LTR"></span>Use Solution Domain Names</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.75in; text-indent: -0.25in"><span style="font-family: &quot;Courier New&quot;">o<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;
</span></span><span dir="LTR"></span>Don't prefix everything
with solution name/abbreviation</p><p style="margin-top: 0"></p><p style="margin: 0 0 5pt 0.25in; text-indent: -0.25in"><span style="font-family: Symbol">·<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span dir="LTR"></span>Structuring your functions</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.75in; text-indent: -0.25in"><span style="font-family: &quot;Courier New&quot;">o<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;
</span></span><span dir="LTR"></span>Keep them small</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.75in; text-indent: -0.25in"><span style="font-family: &quot;Courier New&quot;">o<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;
</span></span><span dir="LTR"></span>Single responsibility
principle</p><p style="margin-top: 0"></p><p style="margin: 0 0 5pt 0.25in; text-indent: -0.25in"><span style="font-family: Symbol">·<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span dir="LTR"></span>Comments</p><p style="margin: 0 0 5pt 0.25in; text-indent: -0.25in"><span style="font-family: Symbol">·<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span dir="LTR"></span>Formatting -&gt; don't
bother with it, it's implemented in almost every IDE</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.25in; text-indent: -0.25in"><span style="font-family: Symbol">·<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span dir="LTR"></span>Objects and Data Structures</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.75in; text-indent: -0.25in"><span style="font-family: &quot;Courier New&quot;">o<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;
</span></span><span dir="LTR"></span>Don't include business
rules in Active Records</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.75in; text-indent: -0.25in"><span style="font-family: &quot;Courier New&quot;">o<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;
</span></span><span dir="LTR"></span>Objects and Data structures
are different stuff</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.75in; text-indent: -0.25in"><span style="font-family: &quot;Courier New&quot;">o<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;
</span></span><span dir="LTR"></span>treat the Active Record as
a data structure and to create&nbsp;separate objects that contain the
business rules</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.25in; text-indent: -0.25in"><span style="font-family: Symbol">·<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span dir="LTR"></span>Error Handling</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.75in; text-indent: -0.25in"><span style="font-family: &quot;Courier New&quot;">o<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;
</span></span><span dir="LTR"></span>Use Exceptions Rather Than
Return Codes</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.75in; text-indent: -0.25in"><span style="font-family: &quot;Courier New&quot;">o<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;
</span></span><span dir="LTR"></span>Don't return null</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.25in; text-indent: -0.25in"><span style="font-family: Symbol">·<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span dir="LTR"></span>Boundaries</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.25in; text-indent: -0.25in"><span style="font-family: Symbol">·<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span dir="LTR"></span>Unit Test</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.75in; text-indent: -0.25in"><span style="font-family: &quot;Courier New&quot;">o<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;
</span></span><span dir="LTR"></span>F.I.R.S.T: your tests
should be Fast, Independant, Repeatable, Self-Validating, and Timely</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.25in; text-indent: -0.25in"><span style="font-family: Symbol">·<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span dir="LTR"></span>Classes</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.75in; text-indent: -0.25in"><span style="font-family: &quot;Courier New&quot;">o<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;
</span></span><span dir="LTR"></span>Classes should be small</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.25in; text-indent: -0.25in"><span style="font-family: Symbol">·<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span dir="LTR"></span>Systems</p><p style="margin-top: 0">Ok, read
this chapter ;)</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.25in; text-indent: -0.25in"><span style="font-family: Symbol">·<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span dir="LTR"></span>Emergence</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.75in; text-indent: -0.25in"><span style="font-family: &quot;Courier New&quot;">o<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;
</span></span><span dir="LTR"></span>"Simple Design"
rules:</p><p style="margin-top: 0; margin-right: 0; margin-left: 1.25in; text-indent: -0.25in"><span style="font-family: Wingdings">§<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp; </span></span><span dir="LTR"></span>Runs all the tests</p><p style="margin-top: 0; margin-right: 0; margin-left: 1.25in; text-indent: -0.25in"><span style="font-family: Wingdings">§<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp; </span></span><span dir="LTR"></span>&nbsp;Contains no duplication</p><p style="margin-top: 0; margin-right: 0; margin-left: 1.25in; text-indent: -0.25in"><span style="font-family: Wingdings">§<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp; </span></span><span dir="LTR"></span>Expresses the intent of the programmer</p><p style="margin-top: 0; margin-right: 0; margin-left: 1.25in; text-indent: -0.25in"><span style="font-family: Wingdings">§<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp; </span></span><span dir="LTR"></span>Minimizes the number of classes and methods</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.25in; text-indent: -0.25in"><span style="font-family: Symbol">·<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span dir="LTR"></span>Concurrency</p><p>









































































</p><p style="margin-top: 0; margin-right: 0; margin-left: 0.25in; text-indent: -0.25in"><span style="font-family: Symbol">·<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-kerning: auto; font-feature-settings: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span dir="LTR"></span>Successive Refinement</p>]]></description>
      <pubDate>Sat, 19 Aug 2023 05:28:30 GMT</pubDate>
      <guid isPermaLink="true">https://vahidnaderi.com/blog/you-don-t-need-to-read-clean-code-in-2023</guid>
    </item>
    <item>
      <title>ChatGPT Plugins</title>
      <link>https://vahidnaderi.com/blog/chatgpt-plugins</link>
      <description><![CDATA[<p class="MsoNormal">OpenAI has recently introduced plugin capabilities for ChatGPT, along with a few sample plugins that integrate with services such as Kayak, Shopify, and Zapier. This development provides a great opportunity for developers to start creating their own plugins, it can be a category for developers to jump in and start developing plugins like the time they developed mobile apps. It also presents an opportunity to take User Interfaces to the next level.<br></p><h3>What are they?</h3><p class="MsoNormal">Currently, OpenAI has introduced a few plugins, in addition to third-party plugins. One of these is a browser plugin powered by Bing search, which provides citations and allows users to follow up with the source of the information provided. Another plugin is a code interpreter that can convert natural language queries into Python code and display the results.</p><p class="MsoNormal">On their blog, they stated:</p><p class="MsoNormal">‘Language models today, while useful for a variety of tasks,
are still limited. The only information they can learn from is their training
data. This information can be out-of-date and is one-size fits all across
applications. Furthermore, the only thing language models can do out-of-the-box
is emit text. This text can contain useful instructions, but to actually follow
these instructions you need another process.’</p><p class="MsoNormal">Also they mentioned:</p><p class="MsoNormal">‘[Plugins give the language models] access to information
that is too recent, too personal, or too specific to be included in the
training data.’</p><h3>How to create one?</h3><p class="MsoNormal">It’s described in the <a href="https://platform.openai.com/docs/plugins/">documentation</a>, in overall you need to :</p><p class="MsoListParagraphCxSpFirst" style="text-indent: -0.25in">-<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span dir="LTR"></span>Create a manifest file</p><p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in">-<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span dir="LTR"></span>Develop the plugin to handle
API calls</p><p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in">-<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span dir="LTR"></span>Register the plugin with
ChatGPT</p><p class="MsoListParagraphCxSpLast" style="text-indent: -0.25in">-<span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span dir="LTR"></span>Activate the plugin in a
ChatGPT user account</p><p class="MsoNormal">In a conversation with the user, a compact description of the
plugin gets injected into the conversation, which is invisible to users. The
model may invoke an API call from the plugin if relevant, and the API results
are incorporated into its response. Also, The model may include links from API
calls in its response, displaying them as rich previews using the OpenGraph
protocol.</p><h3>Conclusion:</h3><p class="MsoNormal">Could it be possible to create an operating system-like platform that enables developers to create extensions or applications? From a business standpoint, involving others in the platform could be the right move to benefit both the developers and the service. This is similar to the model used by operating systems that are often available for free, and on which developers build an ecosystem of applications.</p><p class="MsoNormal">





















































</p><p class="MsoNormal">I don't think of ChatGPT as a portal to everywhere on the internet. Instead, it's more like a service that underlies many places. For example, you wouldn't necessarily go to ChatGPT to order something from Amazon; rather, you'd go to the Amazon website and use a ChatGPT-powered assistant to find what you're looking for. Something similar to the Cloudflare services that many websites use now a days. It's an underlying service that powers those websites and solves a specific problem. As we're familiar with, almost all websites have a search bar. It's likely that these search bars will evolve to become more chat-like and use natural language to help users find the material they're looking for.</p>]]></description>
      <pubDate>Mon, 03 Apr 2023 11:08:09 GMT</pubDate>
      <guid isPermaLink="true">https://vahidnaderi.com/blog/chatgpt-plugins</guid>
    </item>
    <item>
      <title>Current status of the AI</title>
      <link>https://vahidnaderi.com/blog/current-status-of-the-ai</link>
      <description><![CDATA[<p class="MsoNormal">Currently the AI is the hot thing and I guess it’s the web
and internet of the new decade. The emergence of its applications will change
our perception of many things, including education, creative works, engineering,
communication, etc. It’s a wave that we should get on. But how we can do that? Should
we try to replicate the things that big companies like Open AI do? It’s very
expensive to do that. What can be done is develop services on top of these giants.
Something like creating apps for androids and iOS or developing web sites or
web applications on top of the internet. I can really change everything. Easier
interface for the elderly so we don’t have to fix their issues and answer their
questions <span style="font-family: &quot;Segoe UI Emoji&quot;, sans-serif">😐</span> and keep them more protected from scams and
other rubbish stuff that are fed to them. We can better educate our children when
they just need to ask anything from ChatGPT and their questions can be endless.
Something that we’re not that good at. And get irritated by their endless
questions. That can bring them up as questioners rather than memorizers of
stuff.</p>]]></description>
      <pubDate>Sat, 01 Jul 2023 06:22:55 GMT</pubDate>
      <guid isPermaLink="true">https://vahidnaderi.com/blog/current-status-of-the-ai</guid>
    </item>
    <item>
      <title>Thoughts on ChatGPT</title>
      <link>https://vahidnaderi.com/blog/chatgpt</link>
      <description><![CDATA[<p>These days, everyone is talking about ChatGPT, and it seems like every other YouTuber is creating videos about it. From tutorials on how to use ChatGPT to write an essay, to learning English with ChatGPT, to exploring ways to make money with it. ChatGPT is everywhere. It's a clear indication that we are in the AI age, with emerging services like ChatGPT that are accelerating the adoption of AI. It reminds me of the early days of the web or Android, when everyone was buzzing about them and there was a rush to have a website or a mobile app.</p><p>Indeed, ChatGPT presents a fantastic opportunity for individuals who are interested in exploring new technologies or creating businesses around it. The pace of change has been remarkable over the past few decades. The Internet and the web, which are only about 35 years old, have become indispensable in our daily lives. They have become akin to electricity, something that we cannot imagine living without in today's world. The way these technologies have transformed various aspects of our lives is truly remarkable, and ChatGPT is another example of how AI is reshaping our interactions with technology and the world around us.</p><p>In the last few years, we have witnessed various trends that did not gain widespread traction, such as blockchain or chatbots, which were popular for a while but did not fulfill their promises. However, AI and its services are fundamentally different. They have an extensive range of use cases, and many people have already had experience with them. Moreover, their impact is often immediate. For example, when you use a service like ChatGPT to compose an email or write an essay, you can see the results instantaneously, and the benefits, such as time-saving, are readily apparent. This makes me believe that AI is not just a passing trend, but a phenomenon that will continue to grow and create numerous opportunities. It would be interesting to revisit this post in a few years and see if this prediction holds true. 😊</p><h3>Jobs</h3><p class="MsoNormal">Neil DeGrasse Tyson raises an interesting point about ChatGPT and AI in general. While AI can process vast amounts of written knowledge and perform various tasks, it lacks the ability to experience the world or be affected by personal experiences in the same way humans do. AI, including ChatGPT, may not have access to unexpressed thoughts, emotions, or subjective experiences that make up human consciousness.</p><p class="MsoNormal"><br></p><p class="MsoNormal">Furthermore, Tyson's comparison of the impact of AI on the job market to the shift from farms to IT jobs is thought-provoking. Just as the industrial revolution transformed the job market from agriculture-based to manufacturing-based, the rise of AI and automation is reshaping the nature of work. Jobs that were traditionally done by humans are now being automated, leading to changes in the job market and the need for new skill sets. This shift has significant implications for the labor force and requires adaptation to keep up with the changing landscape of work in the age of AI.</p><p class="MsoNormal"><br></p><p class="MsoNormal">It's important to recognize that while AI has many benefits and potential applications, it also has limitations and ethical considerations. The human experience, with its complex emotions, creativity, and subjective perspectives, remains distinct from what AI can replicate. As AI continues to advance, it is crucial to have thoughtful discussions and consider the impact on society, including the job market and the broader implications for humanity.</p><p class="MsoNormal">I believe that AI has the potential to create new job opportunities and enable individuals to more easily express their ideas. Oftentimes, we may have creative concepts, such as ideas for cartoons or movies, but lack the necessary resources or skills to bring them to life. AI can help accelerate the idea testing process, allowing for quicker iteration and exploration of a wider range of concepts. This could potentially lead to a blossoming of ideas, akin to the Cambrian period where there was a rapid diversification and proliferation of new species. It could be a new era of creative explosion, facilitated by the capabilities of AI.</p><p>





</p><p class="MsoNormal">There are indeed challenges associated with AI implementation in creative processes. One concern is how individuals can still be compensated for their work. Should people only be paid for generating ideas? Another consideration is that when an idea is implemented by AI, it may lack the diverse perspectives that come from human experiences. Human touch and diversity of ideas can add richness and uniqueness to creative works, as they are often influenced by the backgrounds and experiences of those involved in the implementation process. In contrast, AI and singularity may not possess the same level of diversity in their output. One potential solution could be to have multiple AI agents, with each individual training their own AI, resulting in AI-generated content that reflects the diversity and individuality of its human trainers. It will be important to explore ways to preserve the value of human creativity and diversity in the creative process while leveraging the capabilities of AI. This may involve developing hybrid models that allow for collaboration between AI and humans, and finding fair compensation models for individuals in a changing landscape shaped by AI and technology. Addressing these challenges and finding a balance between AI-driven automation and human creativity will be crucial in shaping the future of creative industries.</p><p class="MsoNormal">When I asked ChatGPT if it's going to take people's jobs, here is its answer:</p><p class="MsoNormal">"No, AI and language models like ChatGPT are not intended to take people's jobs, but rather to assist and enhance human capabilities by automating repetitive tasks and providing information quickly. The ultimate goal is to improve efficiency and productivity, not to replace human labor."</p><h3>The next step</h3><p class="MsoNormal">The dominant prediction of AI advancement is generally reaching singularity. While we may get there eventually, I believe the next step is distributed AI. This involves an AI engine, such as ChatGPT, that can be trained by individuals with their own preferences and skill sets. It's like having an expert assistant that everyone can train and nurture like a child or a pet. The skills learned by the AI can be copyrighted and licensed to others for use. For example, I could train my AI assistant to make decisions based on my preferences and how I would design a software system. It would have access to shared knowledge from the internet but with my unique touch. I could even rent it out to others for specific tasks.</p><p class="MsoNormal">Another example could be an architect who has spent years training their AI assistant to design a specific type of building. When you need a building of that kind, you could hire that assistant to design and oversee the implementation of such projects for you.</p><p class="MsoNormal">Or a teacher can train their AI assistant with their own teaching style, and many others can learn from their dedicated AI teacher because that AI teacher can be multiplied. At the end of the day, the teacher can review the performance of their AI assistant, identify areas that are working well and those that need improvement, and make necessary modifications. This way, the AI assistant can continue to improve over time. It's similar to how businesses specialize in solving specific problems and selling their skills and resources to other businesses or organizations.</p><p class="MsoNormal">In such a case, everyone can raise their AI assistant with their own nuances and replicate it as much as they want.</p><p class="MsoNormal">There are some requirements as well. Not everyone may have the necessary processing power to operate their own AI assistant. Thus, big cloud companies can provide the required processing power and AI model for such assistants. However, they should be bound by privacy policy regulations and should not be allowed to access all the data of the trained assistants. This presents a challenge in itself.<br></p>]]></description>
      <pubDate>Tue, 25 Feb 2025 05:37:02 GMT</pubDate>
      <guid isPermaLink="true">https://vahidnaderi.com/blog/chatgpt</guid>
    </item>
    <item>
      <title>Change BlogPost editor from Markdown to Html in Orchard Core</title>
      <link>https://vahidnaderi.com/blog/change-blogpost-editor-from-markdown-to-html-in-orchard-core</link>
      <description><![CDATA[<p>Recently I’ve concluded that Markdown is not a good fit for my orchard core blog. My blog is on two languages English and Persian. And markdown is too limited for Persian specifically its lack of RTL support. So I decided to switch to an Html editor for blog posts. Editing the blog post content type is simple but I need to migrate my old posts' text to the new editor field and I need to show the content of this HTML editor on the page, not the markdown one.</p><p>After a little search, I find out that I should change these types of things with templates, previously I thought I should change them by modifying a view file or something but as it turns out I just needed to add a template with the name Content__BlogPost which I found it under BlogPost part edit, edit templates drop-down button then “Template for Blog Post content item in detail views.</p><p>Then copied the orchard core source for TheBlogTheme views, Content-BlogPost.liquid which is what currently is being used I pasted the content to the new template content and just changed the part with markdown rendering on it to HTML rendering.</p><p>Before:</p><p><code>{{ Model.Content.MarkdownBodyPart | shape_render }}</code></p><p>After:</p><p><code>{{ Model.Content.HtmlBodyPart | shape_render }}</code></p><p>I saved it and it worked like a charm 😊</p><p><br></p><p>But now I have to copy and paste the content from my markdown field to HTML field and edit each post a bit. Let’s see if I can find a way to copy the markdown field to the HTML field.</p><p>Maybe I can do it with a query on the database. Yeah, it’s not that complicated with a query it just needs to filter the content column in the document table where "ContentType":"BlogPost" and change the word Markdown to Html.</p><p>But due to the changes required for MD to render well as HTML, I had to edit them one by one I chose to keep both parts in the blog post and migrate the content one by one.</p><p>By the way, I chose Trumbowyg editor for the HTML editor type. It looks more featureful. I’ll share my thoughts when I have more experience with it.</p><p>As of now, it turns out copying and pasting is easier for editing than updating the content using a query. The formatting is a nightmare. 😊</p><p><br></p>]]></description>
      <pubDate>Mon, 03 Apr 2023 11:20:21 GMT</pubDate>
      <guid isPermaLink="true">https://vahidnaderi.com/blog/change-blogpost-editor-from-markdown-to-html-in-orchard-core</guid>
    </item>
    <item>
      <title>My routine</title>
      <link>https://vahidnaderi.com/blog/my-routine</link>
      <description><![CDATA[<p class="MsoNormal">Having a routine is one of the things that can take us to
speed and simplify our days. As developers it’s our job to get complex problems
and simplify them so that many others can use. One thing that we should do for
ourselves is simplifying our own days. With so many decisions that we have to make
on a daily basis we should lower the decision fatigue as much as possible. One
way to do that is by installing daily routines. In process of creating these routines
we should consider what works for us and what won’t. Routines can reduce the feeling of not having enough time for what we like to do which is not a real issue. It creates a base that we can
build the things we want to do on that. For example, if you come back from work
every day at 5 it would be easy for you to say ok, I need that book and tomorrow
I’ll go to the bookstore and buy it after work. In this case having a routine to leave work at 5
creates a basis that you can hang some other tasks on it, and most certainly it
would be done. But if you don’t have a routine, you don’t know where you can put
that task. This uncertainty makes it harder to do it and delays it day after day. Another
thing is that we all want to do stuff that we know that we should regularly, read books, exercise, write journal, meditate and some
other things that we have concluded that we should do, but we can’t find the
time for them. We always want to exercise
regularly someday or read books regularly, but its regularity fades away after a
short time and leaves us with half read books and a stack of books that you
have bought, hoping to read them someday. These things where some of my problems
which after reading the book 5am club by Robbin Sharma decided to implement its
recommendations and practices and now here is the routine that worked for me.</p><p class="MsoNormal">1- Waking up early</p><p class="MsoNormal">It's a repeated advice for making good habits, in these days
the majority of people tend to sleep late and wake up later in the morning,
that makes early mornings noise free, peaceful and suitable for a nice start
with mediation and thinking for the ones who get up before the sunrise.</p><p class="MsoNormal">One behavior I have witnessed is people tend to end their work
at a certain time regardless of when they started. Say you come to office every
day at 8 and leave at 5 so let’s say in a day you come to office at 10 and
decide to leave at 7 instead of 5. But after 5 you feel like you're working
extra hours and you feel that you should not press that hard despite you’re not
doing anything more than the other days. It’s our brain which forgets our start
time but expects our end time to be the same. So late come and late go does not
equal to every day come and go but it’s gives us the illusion that it’s the
same or even more.</p><p class="MsoNormal">But you don’t experience such thing when you start early. </p><p class="MsoNormal">Every hour you wake up earlier is an additional hour you
stack upon your existing 24.</p><p class="MsoNormal">2- Exercise</p><p class="MsoNormal">It's said that it causes serotonin release in blood and
makes you happier overall. It’s one of the hard things when you’re building the
habit of waking up early and having a victorious routine. If I miss a few days,
I will decrease the intensity of the exercises to make it easier and use less
motivation to start it again. It’s very important to the overall quality of the
day.</p><p class="MsoNormal">3- Journaling</p><p class="MsoNormal">Journaling about the things that are circulating in my mind makes
them less painful and clears my thoughts about what I’m going to do about them.
It’s a prerequisite for the next step that without it, it’s more difficult to practice.
I have set a minimum of 10 lines for it.</p><p class="MsoNormal">4- Meditation</p><p class="MsoNormal">Meditating is one of the activities that helps to improve
our focus and is the reverse practice that we do by scrolling through social media. In
social media we exercise scattering our attention, not focusing on any subject
for more than a few seconds. Meditation in contrast makes us do the opposite. And
it’s the opposite that has value in our time. In this age anything of value
requires a good amount of focus and as Cal Newport have put it deep work.</p><p class="MsoNormal">5- Reading books</p><p class="MsoNormal">We usually have a stack of the books we want to read someday
but usually they stay in the stack for months and years without getting out of
it. A routine for reading creates a line to dequeue from the queue and we can
add to our queue later without the feeling guilty
about buying another book.</p><p class="MsoNormal">6- Writing blog</p><p class="MsoNormal">We don’t just need to consume knowledge we should be able to
process the knowledge we get and produce new knowledge then transfer it to other
people too. The act of transferring knowledge and ideas is a critical strength,
because without it we can't persuade the others to help us and be with us. And most
of the exceptional things need to be done with the help of other people. Writing
is the art of thinking clearly and transfer it to others.</p><p class="MsoNormal">7- Plan the day ahead</p><p>













































</p><p class="MsoNormal">Planning the day ahead can actually reduce our stress and
shape our days better. It never goes as planned but keeping our minds on the
things we want and that we think that are important helps us to have a more
fruitful day after all. And better response to problems that rise unexpectedly
during the day.</p>]]></description>
      <pubDate>Mon, 03 Apr 2023 11:21:22 GMT</pubDate>
      <guid isPermaLink="true">https://vahidnaderi.com/blog/my-routine</guid>
    </item>
  </channel>
</rss>