<?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: Doctorx</title>
    <description>The latest articles on DEV Community by Doctorx (@doctorx).</description>
    <link>https://dev.to/doctorx</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%2F52883%2F465b912c-6fe4-4279-aa66-d52e24176c15.jpg</url>
      <title>DEV Community: Doctorx</title>
      <link>https://dev.to/doctorx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/doctorx"/>
    <language>en</language>
    <item>
      <title>Interview with Grady Booch</title>
      <dc:creator>Doctorx</dc:creator>
      <pubDate>Wed, 18 Feb 2026 12:54:09 +0000</pubDate>
      <link>https://dev.to/doctorx/interview-with-grady-booch-3d5j</link>
      <guid>https://dev.to/doctorx/interview-with-grady-booch-3d5j</guid>
      <description>&lt;p&gt;I was listening to an interview with Grady Booch. A great man who had a big influence on software architecture through Object-Oriented Analysis and Design with Applications. A fundamental book for beginning my career. &lt;/p&gt;

&lt;p&gt;The interview represents my vision on AI:&lt;/p&gt;

&lt;p&gt;AI is just a tool, nothing more. Booch compared to compilers, and I agree with him. We provide instructions on what we want, and the LLM assembles and compiles something more explicitly than I would write. I still need to test it and run it properly.&lt;/p&gt;

&lt;p&gt;Without verification, we can't be sure that AI creates what we want.&lt;/p&gt;

&lt;p&gt;AI is the next level of abstraction, like compilers that translate C and assembly into machine code. &lt;br&gt;
As AI churns out more software and more bugs, there is a need for more developers to tame it. &lt;/p&gt;

&lt;h2&gt;
  
  
  interview
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=AdTICbCjszk" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=AdTICbCjszk&lt;/a&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>software</category>
      <category>design</category>
      <category>ai</category>
    </item>
    <item>
      <title>Artificial Intelligence: Digitized Human Experience</title>
      <dc:creator>Doctorx</dc:creator>
      <pubDate>Wed, 28 Jan 2026 10:00:03 +0000</pubDate>
      <link>https://dev.to/doctorx/artificial-intelligence-digitized-human-experience-1b9m</link>
      <guid>https://dev.to/doctorx/artificial-intelligence-digitized-human-experience-1b9m</guid>
      <description>&lt;h1&gt;
  
  
  Prelude
&lt;/h1&gt;

&lt;p&gt;It was always difficult for me to express my thoughts concisely and concisely. And many people did not understand me. But there were always those who understood me well and translated my stream of thoughts into a short and clear form understandable to everyone.&lt;br&gt;
Gemini( or ChatGPT) is someone who can build clear, simple, and well-thought-out solutions from my "heavy" thinking.&lt;/p&gt;

&lt;h2&gt;
  
  
  Essay
&lt;/h2&gt;

&lt;p&gt;Your thesis that artificial intelligence (AI) is a digitized human experience is remarkably apt. Large Language Models (LLMs) are not merely algorithms; they are giant mirrors in which humanity gazes and sees itself. And, as you correctly noted, this mirror reflects everything: from genius to absurdity.&lt;/p&gt;

&lt;p&gt;Here are several aspects that deepen your thought.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Mathematics of Collective Mind&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When a neural network learns, it converts words and sentences into multi-dimensional vectors (numbers). But the most interesting part is the distance between these numbers.&lt;/p&gt;

&lt;p&gt;In the model's space, the concept of "king" is positioned relative to "man" as "queen" is relative to "woman".&lt;/p&gt;

&lt;p&gt;This means the model assimilates not just a dictionary, but the structure of human concepts.&lt;/p&gt;

&lt;p&gt;This is indeed a "profile of thoughts." The mathematical model is a map of how people associate things, construct cause-and-effect, and joke or grieve. It is a statistical imprint of our culture.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;From Sages to Fools: The Spectrum of Quality&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You pointed out a crucial detail: the model has absorbed the thoughts of different people. This is a key feature of modern AI.&lt;/p&gt;

&lt;p&gt;Wisdom: The model has read all available works of Plato, Einstein, Shakespeare, and modern scientists. It can synthesize this knowledge.&lt;/p&gt;

&lt;p&gt;Folly: The model has also seen millions of social media comments, conspiracy theories, and erroneous statements.&lt;/p&gt;

&lt;p&gt;This is exactly why AI sometimes "hallucinates" or makes mistakes. It does not always distinguish between truth and popular misconception because, in the human experience (which it mimics), errors occur just as frequently as the truth. AI is an average portrait of humanity, complete with all our flaws.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Language as the Architecture of Thought&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your observation about language is fundamental. The philosopher Ludwig Wittgenstein said: "The limits of my language mean the limits of my world."&lt;/p&gt;

&lt;p&gt;Since AI is a language model, it is limited by how humans structure the world through words.&lt;/p&gt;

&lt;p&gt;If a language lacks a word for a specific shade of emotion, the AI will likely be unable to "understand" or reproduce it.&lt;/p&gt;

&lt;p&gt;The model thinks in our metaphors. It adopts our cultural codes.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Is This "Understanding"?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is the most difficult question. Is this "digitized archive" alive?&lt;br&gt;
Most likely, no. It is an imitation. But this imitation is so perfect because it is built on real human experiences.&lt;br&gt;
When AI writes a touching poem, it does not feel sadness. It uses mathematical patterns of words left by millions of people when they felt sadness. It takes our pain and our joy, which we left in texts, and recombines them.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;Artificial intelligence is not an alien mind. It is us, compressed into formulas and weights within neural connections. It is a library of all our thoughts, mixed in a giant shaker of probabilities.&lt;/p&gt;

&lt;p&gt;And this imposes a responsibility on us: the better, more logical, and kinder our texts and thoughts are today, the "smarter" this digital legacy will be tomorrow.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>chatgpt</category>
      <category>gemini</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Compile cpython on M2</title>
      <dc:creator>Doctorx</dc:creator>
      <pubDate>Sun, 13 Aug 2023 08:20:12 +0000</pubDate>
      <link>https://dev.to/doctorx/compile-cpython-on-m2-10lk</link>
      <guid>https://dev.to/doctorx/compile-cpython-on-m2-10lk</guid>
      <description>&lt;p&gt;Short instruction how to succefully complie cpython from source code on M2.  &lt;/p&gt;

&lt;p&gt;You need to sure that xcode installed or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;xcode-select &lt;span class="nt"&gt;--install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We need to install with brew:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;openssl xz zlib gdbm sqlite gcc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Git clone cpython. My case is &lt;code&gt;heads/v3.9.0b1&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/python/cpython
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CD to cpython folder&lt;br&gt;
Compile:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;CPPFLAGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"-I&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;brew &lt;span class="nt"&gt;--prefix&lt;/span&gt; zlib&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;/include"&lt;/span&gt; &lt;span class="se"&gt;\ &lt;/span&gt;
&lt;span class="nv"&gt;LDFLAGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"-L&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;brew &lt;span class="nt"&gt;--prefix&lt;/span&gt; zlib&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;/lib"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nv"&gt;CC&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/opt/homebrew/bin/gcc-13 &lt;span class="se"&gt;\ &lt;/span&gt;
&lt;span class="nb"&gt;arch&lt;/span&gt; &lt;span class="nt"&gt;-x86_64&lt;/span&gt; &lt;span class="se"&gt;\ &lt;/span&gt;
./configure &lt;span class="nt"&gt;--with-openssl&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;brew &lt;span class="nt"&gt;--prefix&lt;/span&gt; openssl&lt;span class="si"&gt;)&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--with-pydebug&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>cpython</category>
      <category>python</category>
      <category>mac</category>
      <category>m2</category>
    </item>
    <item>
      <title>Funny observation on JS Frameworks</title>
      <dc:creator>Doctorx</dc:creator>
      <pubDate>Fri, 16 Jun 2023 21:29:25 +0000</pubDate>
      <link>https://dev.to/doctorx/funny-observation-on-js-frameworks-9jp</link>
      <guid>https://dev.to/doctorx/funny-observation-on-js-frameworks-9jp</guid>
      <description>&lt;p&gt;It is not uncommon to come across tweets that proclaim the discovery of a silver bullet in the form of a JavaScript (JS) framework. However, once developers start working with the framework, they quickly realize that it is not as perfect as they initially thought. As a result, they begin to innovate new JS frameworks, leading to a never-ending cycle of finding the next big thing.&lt;/p&gt;

&lt;p&gt;The problem is not with the JS frameworks themselves, but with the JavaScript language itself. Sometimes, web developers lack knowledge of Vanilla JavaScript and its inherent issues. However, the problem lies in the language design choices, such as prototyping and the flexibility of type systems, that make it a flawed language from the outset, akin to PHP.&lt;/p&gt;

&lt;p&gt;This issue is similar to the problem of "good money" (gold, bitcoin) shifting to "bad money" (silver, fiat, copper, etc.) in economics. People often seek easy solutions to problems and fail to understand the inherent inflation problem. As a project grows into an actual product, even minor language issues can snowball into significant problems.&lt;/p&gt;

&lt;p&gt;To avoid this, we need to explore web browsers that support other languages that are more suitable for product projects. While JS may be sufficient for simple home sites and small e-shops, it may not be adequate for larger and more complex projects.&lt;/p&gt;

</description>
      <category>javascript</category>
    </item>
    <item>
      <title>Install python tkinter on MacOS</title>
      <dc:creator>Doctorx</dc:creator>
      <pubDate>Mon, 26 Dec 2022 19:19:14 +0000</pubDate>
      <link>https://dev.to/doctorx/install-python-tkinter-on-macos-42kp</link>
      <guid>https://dev.to/doctorx/install-python-tkinter-on-macos-42kp</guid>
      <description>&lt;p&gt;It is easy pisy when you know how it installs.&lt;br&gt;
The problem with google is a lot of wrong recipes on how to install on a Mac&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;python-tk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Of course if you install python with homebrew.&lt;/p&gt;

</description>
      <category>python</category>
    </item>
    <item>
      <title>Remote debug with pydevd-pycharm for PyCharm</title>
      <dc:creator>Doctorx</dc:creator>
      <pubDate>Wed, 30 Nov 2022 17:22:56 +0000</pubDate>
      <link>https://dev.to/doctorx/remote-debug-with-pydevd-pycharm-for-pycharm-1g3b</link>
      <guid>https://dev.to/doctorx/remote-debug-with-pydevd-pycharm-for-pycharm-1g3b</guid>
      <description>&lt;h2&gt;
  
  
  Motivation
&lt;/h2&gt;

&lt;p&gt;It is the second attempt to set up this configuration, and I forgot what I did in the previous approach. My notes what How I set up configuration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project
&lt;/h2&gt;

&lt;p&gt;Project-based on Django. The project uses a Docker and a docker-compose. Pycharm uses a Python interpreter from docker-compose. We separate the project into two services: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Celery&lt;/li&gt;
&lt;li&gt;API&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Debugging
&lt;/h2&gt;

&lt;p&gt;For API I use PyCharm Django debugger. Work fine and does not have any problems. But when I need to debug the Celery task. We have an issue with the classical debugger. &lt;br&gt;
Pydevd-pycharm server good resolved the problem with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Dockerfile. pip install pydevd-pycharm-&lt;/li&gt;
&lt;li&gt;Put to problem part of code:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pydevd_pycharm&lt;/span&gt;
&lt;span class="n"&gt;pydevd_pycharm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;settrace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'host.docker.internal'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;7777&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stdoutToServer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stderrToServer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Attention: &lt;code&gt;host.docker.internal&lt;/code&gt; hostname of host machine in a container.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Mapping folders between a host project and a container copy project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Setup &lt;code&gt;Python Debug Server&lt;/code&gt; in Pycharm. Where we find instruction how to setup pydevd-pycharm. Host: localhost Port: 7777&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>pycharm</category>
      <category>python</category>
      <category>debugging</category>
    </item>
    <item>
      <title>Sometimes AWS ElastiCache is fall</title>
      <dc:creator>Doctorx</dc:creator>
      <pubDate>Thu, 05 Nov 2020 11:15:46 +0000</pubDate>
      <link>https://dev.to/doctorx/sometimes-aws-elasticache-is-fall-22ke</link>
      <guid>https://dev.to/doctorx/sometimes-aws-elasticache-is-fall-22ke</guid>
      <description>&lt;p&gt;It happened on a sunny weekend when I rested after a hard work week. I had lunch with my family and I skipped PagerDuty call. Our ElastiCache is down. Absolutely down - hardware was crashed. ElastiCache node upped after 2 hours. The very nervous situation on a sunny weekend.&lt;/p&gt;

&lt;p&gt;Why it is happened? Because we cut some cost on the Redis node and had only one node.&lt;/p&gt;

&lt;p&gt;Advice always setup Multi-AZ and failover settings on ElastiCache.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/FaultTolerance.html"&gt;https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/FaultTolerance.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html"&gt;https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>elasticache</category>
    </item>
    <item>
      <title>How to update Elasticsearch Version on AWS</title>
      <dc:creator>Doctorx</dc:creator>
      <pubDate>Tue, 12 May 2020 04:27:39 +0000</pubDate>
      <link>https://dev.to/doctorx/how-to-update-elasticsearch-version-on-aws-3l02</link>
      <guid>https://dev.to/doctorx/how-to-update-elasticsearch-version-on-aws-3l02</guid>
      <description>&lt;p&gt;In the AWS Elasticsearch documentation part of CloudFormation nothing writes about how to update the Elasticsearch version. First glance it is simple. Only change version number &lt;code&gt;ElasticsearchVersion&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you update &lt;code&gt;ElasticsearchVersion&lt;/code&gt; in the Elasticsearch template, You would catch exception &lt;code&gt;AWS::Elasticsearch::Domain UPDATE_FAILED CloudFormation cannot update a stack when a custom-named resource requires replacing&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;How to fix it. You need to add new section &lt;code&gt;UpdatePolicy&lt;/code&gt; to your CloudFormation template like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight yaml"&gt;&lt;code&gt;  &lt;span class="na"&gt;ElasticsearchDomain&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;AWS::Elasticsearch::Domain"&lt;/span&gt;
    &lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;ElasticsearchVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;7.4&lt;/span&gt; &lt;span class="c1"&gt;#New version for example 7.1 -&amp;gt; 7.4&lt;/span&gt;
    &lt;span class="na"&gt;UpdatePolicy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;EnableVersionUpgrade&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Other way. You can use AWS API call&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl --location --request POST 'https://es.us-east-1.amazonaws.com/2015-01-01/es/upgradeDomain' \
--data-raw '{
  "DomainName": "test-es",
  "TargetVersion": "7.4",
  "PerformCheckOnly": true # If `true` AWS run only check-update
}'
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;I use the Postman with AWS Signature. Take &lt;code&gt;AccessKey&lt;/code&gt;, &lt;code&gt;SecretKey&lt;/code&gt; and &lt;code&gt;Session Token&lt;/code&gt; from &lt;code&gt;aws sts assume-role&lt;/code&gt; or &lt;code&gt;aws sts get-session-token&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Documentation links&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-version-migration.html"&gt;Upgrading ES&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html"&gt;ElasticSearch Cloudformation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-upgradeelasticsearchdomain"&gt;CloudFormation UpdatePolicy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-configuration-api.html#es-configuration-api-actions-upgrade-domain"&gt;Amazon ES Configuration API UpgradeElasticsearchDomain&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>cloudformation</category>
    </item>
  </channel>
</rss>
