<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Eric's blog]]></title><description><![CDATA[Hello! I'm Eric Milaneze. I'm excited to announce the launch of my new blog, where I'll explore topics like programming, leadership, new languages, frameworks, data structures, algorithms, and Linux.]]></description><link>https://blog.milaneze.com.br</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 20:19:21 GMT</lastBuildDate><atom:link href="https://blog.milaneze.com.br/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Free images for free for your blog]]></title><description><![CDATA[You can find free images for your blog posts on various websites that offer high-quality, royalty-free photos. Here are a few options:

Pixabay: Offers a wide range of free images that you can use without attribution.

Pexels: Provides thousands of f...]]></description><link>https://blog.milaneze.com.br/free-images-for-free-for-your-blog</link><guid isPermaLink="true">https://blog.milaneze.com.br/free-images-for-free-for-your-blog</guid><category><![CDATA[images]]></category><category><![CDATA[blog]]></category><category><![CDATA[website]]></category><category><![CDATA[free]]></category><category><![CDATA[AI]]></category><dc:creator><![CDATA[Eric Milaneze]]></dc:creator><pubDate>Wed, 10 Apr 2024 03:00:10 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1711972695790/3d6cb47e-c096-4832-8726-2642bc8ab46f.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You can find free images for your blog posts on various websites that offer high-quality, royalty-free photos. Here are a few options:</p>
<ul>
<li><p><a target="_blank" href="https://pixabay.com"><strong>Pixabay</strong></a>: Offers a wide range of free images that you can use without attribution.</p>
</li>
<li><p><a target="_blank" href="https://www.pexels.com"><strong>Pexels</strong></a>: Provides thousands of free stock photos that you can download and use, adding new images daily.</p>
</li>
<li><p><a target="_blank" href="https://unsplash.com/"><strong>Unsplash</strong></a>: A community of photographers sharing their work for free, known for the exceptional quality of images.</p>
</li>
<li><p><a target="_blank" href="https://www.contentpowered.com/blog/stock-photo-sites-blog/"><strong>Content Powered Blog</strong></a>: Lists multiple sources for free stock photos, including Negative Space and Gratisography.</p>
</li>
</ul>
<p>Remember to check the licensing on each image, as some may require attribution or have restrictions on commercial use.</p>
<h1 id="heading-ai-generated-images">AI-generated images</h1>
<p>You can create AI-generated images for free using various online platforms. Here are some options:</p>
<ul>
<li><p><a target="_blank" href="https://www.craiyon.com/"><strong>Craiyon</strong></a>: Offers a free AI image generator that can create art from text prompts.</p>
</li>
<li><p><a target="_blank" href="https://perchance.org/ai-photo-generator"><strong>Perchance</strong></a>: A realistic AI photo generator that’s free to use, with no sign-up or limits.</p>
</li>
<li><p><a target="_blank" href="https://imggen.ai/"><strong>ImgGen</strong></a>: Provides fast, high-quality visuals with a text-to-image generator that’s completely free.</p>
</li>
<li><p><a target="_blank" href="https://www.canva.com/ai-image-generator/"><strong>Canva</strong></a>: Features AI photo generator apps that produce images from text prompts.</p>
</li>
<li><p><a target="_blank" href="https://www.lummi.ai/"><strong>Lummi</strong></a>: A source for free AI-generated stock photos and royalty-free images<sup>5</sup>.</p>
</li>
</ul>
<p>These services typically use advanced AI models to turn text descriptions into visual art, and they’re a great resource for bloggers and content creators looking for unique images. Remember to review the terms of use for each platform, as they may have specific rules regarding the commercial use of generated images.</p>
<h1 id="heading-online-image-editors">Online image editors</h1>
<p>The images you get from the previous links may not be the size you need for your site or blog. In those cases, you can access the following options:</p>
<ul>
<li><p><a target="_blank" href="https://www.online-image-editor.com/">Online Image Editor (OIE)</a>: The easiest method to edit an image in a clean and fast manner</p>
</li>
<li><p><a target="_blank" href="https://pixlr.com/express/">Pixlr Express</a>: A free modern AI-powered photo editor by Pixlr.</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Git most used commands]]></title><description><![CDATA[This page contains a list of basic Git commands. The information is not detailed, and the page will be updated when necessary (this list has been updated since 2015).
Configuration
Initial configuration
git config --global user.name "username"
git co...]]></description><link>https://blog.milaneze.com.br/git-most-used-commands</link><guid isPermaLink="true">https://blog.milaneze.com.br/git-most-used-commands</guid><category><![CDATA[Git]]></category><category><![CDATA[GitHub]]></category><dc:creator><![CDATA[Eric Milaneze]]></dc:creator><pubDate>Wed, 03 Apr 2024 03:00:55 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1711760105692/6bb47636-fbf5-4a51-9f3c-a8fc25419993.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This page contains a list of basic Git commands. The information is not detailed, and the page will be updated when necessary (this list has been updated since 2015).</p>
<h1 id="heading-configuration">Configuration</h1>
<h2 id="heading-initial-configuration">Initial configuration</h2>
<pre><code class="lang-bash">git config --global user.name <span class="hljs-string">"username"</span>
git config --global user.email <span class="hljs-string">"user@domain.com"</span>
</code></pre>
<h2 id="heading-enlist-all-configurations"><strong>Enlist all configurations</strong></h2>
<pre><code class="lang-bash">git config --list
</code></pre>
<h2 id="heading-edit-configuration-in-a-text-editor"><strong>Edit configuration in a text editor</strong></h2>
<pre><code class="lang-bash">git config --global --edit
</code></pre>
<h2 id="heading-configuration-list-example"><strong>Configuration list example</strong></h2>
<pre><code class="lang-plaintext">[core]
    editor = \\"C:\\\\Users\\\\eric\\\\AppData\\\\Local\\\\Programs\\\\Microsoft VS Code\\\\Code.exe\\" --wait
[user]
    email = eric@milaneze.com.br
    name = Eric Milaneze
[difftool "sourcetree"]
    cmd = '' \\"$LOCAL\\" \\"$REMOTE\\"
[mergetool "sourcetree"]
    cmd = "'' "
    trustExitCode = true
</code></pre>
<h2 id="heading-store-the-remote-repository-password"><strong>Store the remote repository password</strong></h2>
<pre><code class="lang-bash">git config --global credential.helper store
</code></pre>
<p>In this case, the password will be saved for future use when requested. For further information, please see this <a target="_blank" href="https://www.shellhacks.com/git-config-username-password-store-credentials/">ShellHacks' post</a>:</p>
<h1 id="heading-basic-commands"><strong>Basic commands</strong></h1>
<h2 id="heading-init-amp-status">Init &amp; status</h2>
<pre><code class="lang-bash"><span class="hljs-comment"># create a repository on the current directory</span>
git init

<span class="hljs-comment"># create a git repository to be used as remote 002 - Git Commands</span>
git init --bare

<span class="hljs-comment"># shows files added or modified in the stage and working directory</span>
git status
</code></pre>
<h2 id="heading-commit">Commit</h2>
<pre><code class="lang-bash"><span class="hljs-comment"># add all files to the staging area</span>
git add .

git add a.txt

git add *.txt

<span class="hljs-comment"># remove the file from the stage</span>
git reset HEAD {{file-path}}

<span class="hljs-comment"># goes back to a previous commit</span>
<span class="hljs-comment"># CAUTION, there is no going back</span>
<span class="hljs-comment"># actually, you can go back by getting your previous hash using reflog</span>
git reset --hard {{commit-hash}}

git commit -m <span class="hljs-string">"initial commit"</span>

<span class="hljs-comment"># adds files in Stage to the last commit</span>
git commit --amend -m <span class="hljs-string">"initial commit (editing)"</span>

<span class="hljs-comment"># create a new commit unlike {{commit-hash}} to reverse it</span>
git revert {{commit-hash}}
</code></pre>
<h2 id="heading-logs">Logs</h2>
<pre><code class="lang-bash"><span class="hljs-comment"># view the commit log</span>
git <span class="hljs-built_in">log</span>

<span class="hljs-comment"># shows all commits in a row (also shows the single code of the commit in smaller size)</span>
git <span class="hljs-built_in">log</span> --oneline

<span class="hljs-comment"># same as the previous one, but shows the other branchs and chart</span>
git <span class="hljs-built_in">log</span> --oneline --decorate --all --graph

<span class="hljs-comment"># shows all commits in a row (also shows the hash of the commit)</span>
git <span class="hljs-built_in">log</span> --pretty=oneline

<span class="hljs-comment"># works just like git log + git diff</span>
git <span class="hljs-built_in">log</span> -p

<span class="hljs-comment"># shows the last two logs (last two commits)</span>
git <span class="hljs-built_in">log</span> -p -2 

<span class="hljs-comment"># search for "function_name"</span>
git <span class="hljs-built_in">log</span> -S {{function-name}}
</code></pre>
<h2 id="heading-branch">Branch</h2>
<pre><code class="lang-bash">
<span class="hljs-comment"># shows the existing branches locally</span>
git branch

<span class="hljs-comment"># creates a new branch</span>
git branch {{branch-name}}

<span class="hljs-comment"># deletes a local branch</span>
git branch -d nomeDaBranch

<span class="hljs-comment"># checkout to a specific hash</span>
git checkout {{<span class="hljs-built_in">hash</span>}}

git checkout {{branch-name}}
git switch {{branch-name}}

<span class="hljs-comment"># checkout to a tag</span>
git checkout tagName

<span class="hljs-comment"># create a branch and checkout to it</span>
git checkout -b {{name-of-the-branch}}
git switch -c {{name-of-the-branch}}

<span class="hljs-comment"># gives the option to analyze the differences between the two files</span>
<span class="hljs-comment"># and decide what to keep or not</span>
git checkout -p source_branch -- &lt;paths&gt;

<span class="hljs-comment"># open change report viewer (graphical interface)</span>
gitk

<span class="hljs-comment"># example:</span>
<span class="hljs-comment"># git remote origin https://github.com/ericmilaneze/karaoke</span>
git remote nome url

<span class="hljs-comment"># sends changes to the remote repository</span>
git push origin master

<span class="hljs-comment"># -force =&gt; ignores if any pull should be done before pushing</span>
git push origin master --force

<span class="hljs-comment"># takes changes in the remote without merging with local code</span>
git fetch

<span class="hljs-comment"># download changes to remote and apply to master branch</span>
<span class="hljs-comment"># (git fetch is more recommended)</span>
git pull origin master
</code></pre>
<h2 id="heading-tags">Tags</h2>
<pre><code class="lang-bash">
<span class="hljs-comment"># creates a tag for the last commit</span>
git tag -a v1.0 -m <span class="hljs-string">"Version 1.0"</span>

<span class="hljs-comment"># creates a tag for code commit</span>
git tag -a v0.0 f15cf833e9a6040dfdffe1b488c9cfafe09248e2 -m <span class="hljs-string">"Version 0.0"</span>

<span class="hljs-comment"># shows details of the tag</span>
git show v1.0

<span class="hljs-comment"># deletes a tag</span>
git tag -d v1.0
</code></pre>
<h2 id="heading-files">Files</h2>
<pre><code class="lang-bash"><span class="hljs-comment"># informs Stage of deleted files</span>
git rm {{file-path}}

<span class="hljs-comment"># to take from Stage</span>
git rm --cached {{file-path}}

<span class="hljs-comment"># check if file is tracked by git</span>
git ls-files <span class="hljs-string">"{{file-path}}"</span>
</code></pre>
<h2 id="heading-stash"><strong>Stash</strong></h2>
<pre><code class="lang-bash"><span class="hljs-comment"># creates a place to hide the files that are in Stage and take them from there.</span>
git stash save <span class="hljs-string">"{{stash-name}}"</span>

<span class="hljs-comment"># lists the saved stashes</span>
git stash list

<span class="hljs-comment"># applies a saved stash</span>
git stash apply stash@{0}

<span class="hljs-comment"># erases a target stash</span>
git stash drop stash@{0}

<span class="hljs-comment"># apply + drop in the stack of saved stashes</span>
git stash pop

<span class="hljs-comment"># should be used after the save and is equal to the pop (apply + drop), but applied inside a new branch.</span>
git stash branch {{branch-name}}

<span class="hljs-comment"># restore file from stash</span>
git restore -s stash@{0} -- {{filename}}

<span class="hljs-comment"># gets a specific file from stash</span>
git checkout stash@{0} -- {{filename}}

<span class="hljs-comment"># check the differences in a specific file</span>
git difftool stash@{0}..HEAD -- {{filename}}

<span class="hljs-comment"># shows the content of an entire file (not just the changes)</span>
git show stash@{0}:{{full-filename}}

<span class="hljs-comment"># creates a new file base on the file from stash (could be from another branch as well)</span>
git show stash@{0}:{{full-filename}} &gt; {{newfile}}
</code></pre>
<h2 id="heading-ways-to-delete-changes">Ways to delete changes</h2>
<pre><code class="lang-bash"><span class="hljs-comment"># Removes Unstaged Tracked files ONLY [Type 2]</span>
git checkout . 

<span class="hljs-comment"># Removes Unstaged UnTracked files ONLY [Type 3]</span>
git clean -f -d
git clean -fd

<span class="hljs-comment"># Removes Staged Tracked and UnStaged Tracked files ONLY [Type 1, Type 2]</span>
git reset --hard 

<span class="hljs-comment"># Removes all changes [Type 1, Type 2, Type 3]</span>
git stash -u
</code></pre>
<h2 id="heading-merge"><strong>Merge</strong></h2>
<pre><code class="lang-bash">git merge {{branchB}}

git merge -s ours {{branchB}}

git merge -X theirs {{branchB}}

<span class="hljs-comment"># merge, but does not create any commit</span>
<span class="hljs-comment"># the files where the merge was done without conflicts are in Stage</span>
<span class="hljs-comment"># the others are waiting for the resolution of conflicts</span>
git merge {{branchB}} --squash

<span class="hljs-comment"># cancel merge when there are conflicts</span>
git merge --abort

git mergetool
</code></pre>
<h2 id="heading-rebase"><strong>Rebase</strong></h2>
<pre><code class="lang-bash"><span class="hljs-comment"># make the interactive rebase of the last two commits</span>
git rebase -i HEAD~2

<span class="hljs-comment"># take changes from another branch (interactive mode)</span>
git rebase -i {{other-branch-name}}

<span class="hljs-comment"># use this command after resolving conflicts</span>
git rebase --<span class="hljs-built_in">continue</span>

<span class="hljs-comment"># ignores a commit</span>
git rebase --skip

<span class="hljs-comment"># aborts a rebase in progress</span>
docker rebase --abort
</code></pre>
<h2 id="heading-reset"><strong>Reset</strong></h2>
<pre><code class="lang-bash"><span class="hljs-comment"># mixed - does not place changes from upcoming commits in Stage</span>
git reset &lt;<span class="hljs-built_in">hash</span>&gt;

<span class="hljs-comment"># places changes to upcoming commits in Stage</span>
git reset --soft &lt;<span class="hljs-built_in">hash</span>&gt;

<span class="hljs-comment"># has no return (except through "git reflog")</span>
git reset --hard &lt;<span class="hljs-built_in">hash</span>&gt;
</code></pre>
<h1 id="heading-not-so-basic-commands">Not-so-basic commands</h1>
<h2 id="heading-difference-between-commitsbranchesfiles">Difference between commits/branches/files</h2>
<pre><code class="lang-bash"><span class="hljs-comment"># shows files that are different between the Working directory and the staging area</span>
git diff

<span class="hljs-comment"># shows what is on the staging area and will be comited</span>
git diff --staged

git diff &lt;COMMIT_HASH&gt; -- {{file-path}}
git diff &lt;BRANCH_NAME&gt; -- {{file-path}}
git diff &lt;COMMIT_HASH_1&gt; &lt;COMMIT_HASH_2&gt; {{file-path}}
git diff stash@{0}^1 stash@{0} -- &lt;filename&gt;

<span class="hljs-comment"># shows (with Meld/VS Code) the differences between what has current and the specified commit</span>
git difftool -d 35c37fa607

<span class="hljs-comment"># shows (with Meld/VS Code) the differences between what you have current and the specified branch</span>
git difftool -d branch

<span class="hljs-comment"># shows with Meld/VS Code the differences between what you currently have and what is in the staging area</span>
git difftool -d --staged

git difftool &lt;COMMIT_HASH&gt; {{file-path}}
git difftool &lt;BRANCH_NAME&gt; {{file-path}}
git difftool &lt;COMMIT_HASH_1&gt; &lt;COMMIT_HASH_2&gt; {{file-path}}
</code></pre>
<h2 id="heading-logs-1">Logs</h2>
<pre><code class="lang-bash"><span class="hljs-comment"># get all the changes/commits (even after a hard reset =&gt; reset --hard)</span>
git reflog
</code></pre>
<h2 id="heading-cherry-pick">Cherry-pick</h2>
<pre><code class="lang-bash"><span class="hljs-comment"># adds the commit to the top of the current branch</span>
git cherry-pick {{commit-hash}}

<span class="hljs-comment"># copy all the commits, including the first</span>
git cherry-pick {{commit-hash}}^..{{other-commit-hash}}

<span class="hljs-comment"># copy all the commits, ignoring the first</span>
git cherry-pick {{commit-hash}}..{{other-commit-hash}}
</code></pre>
]]></content:encoded></item><item><title><![CDATA[HTML & CSS from scratch]]></title><description><![CDATA[In my initial post, I discussed the gaps in my knowledge. Observing individuals learning new concepts from scratch, despite possessing substantial prior knowledge, prompted me to ponder: why can't I do the same? Courses like CS50 often see participat...]]></description><link>https://blog.milaneze.com.br/html-css-from-scratch</link><guid isPermaLink="true">https://blog.milaneze.com.br/html-css-from-scratch</guid><category><![CDATA[HTML]]></category><category><![CDATA[CSS]]></category><dc:creator><![CDATA[Eric Milaneze]]></dc:creator><pubDate>Wed, 27 Mar 2024 23:26:18 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1711575796610/8fb515b4-e484-49aa-9f32-99ad9e644def.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In my <a target="_blank" href="https://blog.milaneze.com.br/hello-world">initial post</a>, I discussed the gaps in my knowledge. Observing individuals learning new concepts from scratch, despite possessing substantial prior knowledge, prompted me to ponder: why can't I do the same? Courses like <a target="_blank" href="https://pll.harvard.edu/course/cs50-introduction-computer-science">CS50</a> often see participation from experienced individuals. Therefore, let's imagine I'm starting from scratch with HTML and CSS, even though I'm not.</p>
<h1 id="heading-the-plan">The Plan</h1>
<p>Firstly, I consulted ChatGPT to identify topics to study following the <a target="_blank" href="https://en.wikipedia.org/wiki/Pareto_principle">Pareto principle</a>. You can click <a target="_blank" href="https://chat.openai.com/share/dce83f4f-aadb-4760-97c0-713e0274c80f">here</a> to see ChatGPT's response, which provided me with direction for my next steps.</p>
<h2 id="heading-udemy-courses">Udemy Courses</h2>
<p>My initial approach involves warming up by tackling exercises in the course <a target="_blank" href="https://www.udemy.com/course/html-e-css-o-inicio/">HTML e CSS: O Início (incluindo 5 Projetos)</a> (HTML and CSS: The beginning (including 5 Projects)). This foundational course humbly sets the stage for progress. As I aim to share my journey, I'll post the results of these exercises on a <a target="_blank" href="https://github.com/ericmilaneze/html-e-css-o-inicio">GitHub repository</a>.</p>
<p>Next, I'll delve into <a target="_blank" href="https://www.udemy.com/course/html5-e-css3-tecnicas-avancadas-com-flexbox-e-3-projetos">HTML5 e CSS3: Técnicas Avançadas (Com Flexbox e 5 Projetos)</a> (HTML5 and CSS3: Advanced Techniques (with Flexbox and 5 Projects)), which acts as a continuation of the first course. Despite its advanced title, it provides fundamental insights worth exploring. You can follow my progress on this journey through the corresponding <a target="_blank" href="https://github.com/ericmilaneze/html5-e-css3-tecnicas-avancadas-com-flexbox">GitHub repository</a>.</p>
<p>While another course, <a target="_blank" href="https://www.udemy.com/course/curso-web">Curso Web Moderno Completo com JavaScript + Projetos</a> (Complete Modern Web Course with JavaScript + Projects)), offers comprehensive learning, I'll primarily focus on the CSS section. Although it may seem redundant after the first two courses, it introduces additional challenges. I'll share the corresponding code on the <a target="_blank" href="https://github.com/ericmilaneze/curso-web">GitHub repository</a>.</p>
<p>Furthermore, there are additional topics to cover, such as Tailwind, Bootstrap, CSS variables, and more, as suggested by ChatGPT.</p>
<h2 id="heading-continuous-learning">Continuous Learning</h2>
<p>Practice is key to mastery. I intend to continue seeking <a target="_blank" href="https://chat.openai.com/share/de306da8-c68c-4646-a02f-fdeff1779ead">challenges from ChatGPT</a> to enhance my skills and work on projects listed in this YouTube playlist:</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://www.youtube.com/playlist?list=PLImJ3umGjxdD3ov2lwg0SM5rxz5v9FjOf">https://www.youtube.com/playlist?list=PLImJ3umGjxdD3ov2lwg0SM5rxz5v9FjOf</a></div>
<p> </p>
<p>Similar to the approach with courses, I'll utilize a <a target="_blank" href="https://github.com/ericmilaneze/html-and-css">GitHub repository</a> to store the code I develop to address the challenges presented in this playlist.</p>
<h1 id="heading-wrap-up">Wrap Up</h1>
<p>To summarize, the plan entails:</p>
<ul>
<li><p>Engaging with Udemy courses while documenting progress on corresponding GitHub repositories.</p>
</li>
<li><p>Seeking additional challenges from ChatGPT to broaden my learning.</p>
</li>
<li><p>Continuing to learn and tackle CSS challenges from the YouTube playlist.</p>
</li>
</ul>
<p>Wish me luck on this journey!</p>
]]></content:encoded></item><item><title><![CDATA[Hello World!]]></title><description><![CDATA[Ah, the classic "Hello World!" for the first blog post title. As a programmer (and not-so-great at naming things), I guess it's fitting. I mean, just look at the blog's name: Eric's blog. Not exactly groundbreaking, but hey, let's roll with it. Like ...]]></description><link>https://blog.milaneze.com.br/hello-world</link><guid isPermaLink="true">https://blog.milaneze.com.br/hello-world</guid><category><![CDATA[Hello World]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[Programming Tips]]></category><category><![CDATA[.NET]]></category><category><![CDATA[JavaScript]]></category><dc:creator><![CDATA[Eric Milaneze]]></dc:creator><pubDate>Tue, 26 Mar 2024 21:03:32 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1711486288310/8548ed47-0caa-456a-8c07-891e47ae3218.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ah, the classic "Hello World!" for the first blog post title. As a programmer (and not-so-great at naming things), I guess it's fitting. I mean, just look at the blog's name: Eric's blog. Not exactly groundbreaking, but hey, let's roll with it. Like variables, right? Always subject to change, though they rarely do. The same goes for this blog's name – probably here to stay.</p>
<p>I've been programming since I was 15 (using JavaScript since 2001), but I only managed to get my first job as a software developer in 2009. I had to work in a different field to pay for college, but I often built websites as a freelancer. Since 2009, I've used several programming languages and frameworks, but my main ones are .NET (C#) and JavaScript (Vanilla, jQuery, Angular, and React). Of course, I learned some others during this period, but these are the main ones.</p>
<p>"Why start another blog when there's a sea of them out there?" you might wonder. Well, this isn't my first rodeo. I was blogging in 2012 – it feels like a lifetime ago – just sharing what I was learning. Still learning, still keen to share. Sometimes, my brain feels like a ticking time bomb, so I dump my thoughts here. It beats talking to myself, I suppose.</p>
<p>Here's what I plan to share on this blog:</p>
<ul>
<li><p>A peek into a programmer's daily struggles and how to overcome them</p>
</li>
<li><p>A glimpse into the life of a leader and the daily challenges they face</p>
</li>
<li><p>My journey with learning new programming languages, frameworks, etc.</p>
</li>
<li><p>Deep dives into tech topics like data structures, algorithms, cloud computing, Linux, and more</p>
</li>
</ul>
<p>So, join me on this journey. If my musings can quiet the imposter syndrome and help someone out there, then it's a win-win, that's a bonus.</p>
<hr />
<p>Here's the "original" cover of this post created by <a target="_blank" href="https://imggen.ai/">IMGGEN.AI</a> (on the cover, it was cropped using <a target="_blank" href="https://www.online-image-editor.com/">OIE</a>):</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1711486528416/29fedbca-441d-4284-a4b9-a78fa9a1a0ce.jpeg" alt="The original cover of this blog post showing some computers, a screen showing &quot;hello world&quot;, a keyboard, a cup of coffee, etc." class="image--center mx-auto" /></p>
]]></content:encoded></item></channel></rss>