<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Bookmarks &amp;mdash; Attach to Process</title>
    <link>https://devblog.dinobansigan.com/tag:Bookmarks</link>
    <description>Thoughts and Notes on Software Development</description>
    <pubDate>Mon, 27 Apr 2026 16:23:15 +0000</pubDate>
    <image>
      <url>https://i.snap.as/4wmUdb6N.png</url>
      <title>Bookmarks &amp;mdash; Attach to Process</title>
      <link>https://devblog.dinobansigan.com/tag:Bookmarks</link>
    </image>
    <item>
      <title>DevNotes - 003</title>
      <link>https://devblog.dinobansigan.com/devnotes-003?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Cache Implementations in C# .NET -- good blog post on implementing caching with .NET.&#xA;&#xA;---&#xA;&#xA;You&#39;re using HttpClient wrong and it is destabilizing your software -- great blog post that told me that we should avoid the use of the &#34;using statement&#34; when working with an HttpClient instance. And that&#39;s because disposing it after say a one time use, like doing one API call and then immediately disposing, will leave open/pending socket connections. Do this often enough and you&#39;ll accumulate a number of those open/pending socket connections and that will slow down your app. The better approach is to use a single static HttpClient instance in your app.&#xA;&#xA;---&#xA;&#xA;The always-recent guide to creating a development environment for Node and React (with Babel and Webpack) -- good guide to setting up a full-stack JavaScript development environment on your local, with an eye toward ReactJS.!--more--&#xA;&#xA;---&#xA;&#xA;Good blog posts on how to create Windows Services using .NET Core:&#xA;&#xA;Creating Windows Services In .NET Core – Part 1 – The “Microsoft” Way&#xA;Creating Windows Services In .NET Core – Part 2 – The “Topshelf” Way&#xA;&#xA;---&#xA;&#xA;Combining multiple changes into one commit is a bad idea, because then you cannot revert the single change that you want to revert, without reverting all the other changes that came along with it.&#xA;&#xA;---&#xA;&#xA;Inadvertently discovered a way to find out who is running a specific process on a server. This is useful if you cannot remote into the server, like say because the connections are full. Using Visual Studio, you can do &#34;Attach to Process&#34; on a server. Assuming that server is setup with remote debugging, doing so will get you a listing of the apps/processes running on that server, plus which user are running those apps/processes.&#xA;&#xA;And now you know where I got the name for this blog as well.&#xA;&#xA;---&#xA;&#xA;Tags: #DevNotes #Bookmarks #DotNet #Caching #HttpClient #ReactJS  #WindowsServices #SourceControlBestPractices #TroubleshootingWindowsProcesses&#xA;&#xA;a href=&#34;https://remark.as/p/devblog.dinobansigan.com/devnotes-003&#34;Discuss.../a or leave a comment below.]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="https://michaelscodingspot.com/cache-implementations-in-csharp-net/">Cache Implementations in C# .NET</a> — good blog post on implementing caching with .NET.</p>

<hr/>

<p><a href="https://www.aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/">You&#39;re using HttpClient wrong and it is destabilizing your software</a> — great blog post that told me that we should avoid the use of the “using statement” when working with an <code>HttpClient</code> instance. And that&#39;s because disposing it after say a one time use, like doing one API call and then immediately disposing, will leave open/pending socket connections. Do this often enough and you&#39;ll accumulate a number of those open/pending socket connections and that will slow down your app. The better approach is to use a single static <code>HttpClient</code> instance in your app.</p>

<hr/>

<p><a href="https://jscomplete.com/learn/1rd-reactful">The always-recent guide to creating a development environment for Node and React (with Babel and Webpack)</a> — good guide to setting up a full-stack JavaScript development environment on your local, with an eye toward ReactJS.</p>

<hr/>

<p>Good blog posts on how to create Windows Services using .NET Core:</p>
<ul><li><a href="https://dotnetcoretutorials.com/2019/09/19/creating-windows-services-in-net-core-part-1-the-microsoft-way/">Creating Windows Services In .NET Core – Part 1 – The “Microsoft” Way</a></li>
<li><a href="https://dotnetcoretutorials.com/2019/09/27/creating-windows-services-in-net-core-part-2-the-topshelf-way/">Creating Windows Services In .NET Core – Part 2 – The “Topshelf” Way</a></li></ul>

<hr/>

<p>Combining multiple changes into one commit is a bad idea, because then you cannot revert the single change that you want to revert, without reverting all the other changes that came along with it.</p>

<hr/>

<p>Inadvertently discovered a way to find out who is running a specific process on a server. This is useful if you cannot remote into the server, like say because the connections are full. Using Visual Studio, you can do <strong>“Attach to Process”</strong> on a server. Assuming that server is setup with remote debugging, doing so will get you a listing of the apps/processes running on that server, plus which user are running those apps/processes.</p>

<p><em>And now you know where I got the name for this blog as well.</em></p>

<hr/>

<p><em>Tags: <a href="https://devblog.dinobansigan.com/tag:DevNotes" class="hashtag"><span>#</span><span class="p-category">DevNotes</span></a> <a href="https://devblog.dinobansigan.com/tag:Bookmarks" class="hashtag"><span>#</span><span class="p-category">Bookmarks</span></a> <a href="https://devblog.dinobansigan.com/tag:DotNet" class="hashtag"><span>#</span><span class="p-category">DotNet</span></a> <a href="https://devblog.dinobansigan.com/tag:Caching" class="hashtag"><span>#</span><span class="p-category">Caching</span></a> <a href="https://devblog.dinobansigan.com/tag:HttpClient" class="hashtag"><span>#</span><span class="p-category">HttpClient</span></a> <a href="https://devblog.dinobansigan.com/tag:ReactJS" class="hashtag"><span>#</span><span class="p-category">ReactJS</span></a>  <a href="https://devblog.dinobansigan.com/tag:WindowsServices" class="hashtag"><span>#</span><span class="p-category">WindowsServices</span></a> <a href="https://devblog.dinobansigan.com/tag:SourceControlBestPractices" class="hashtag"><span>#</span><span class="p-category">SourceControlBestPractices</span></a> <a href="https://devblog.dinobansigan.com/tag:TroubleshootingWindowsProcesses" class="hashtag"><span>#</span><span class="p-category">TroubleshootingWindowsProcesses</span></a></em></p>

<p><strong><a href="https://remark.as/p/devblog.dinobansigan.com/devnotes-003">Discuss...</a></strong> or leave a comment below.</p>
]]></content:encoded>
      <guid>https://devblog.dinobansigan.com/devnotes-003</guid>
      <pubDate>Mon, 26 Sep 2022 02:41:14 +0000</pubDate>
    </item>
    <item>
      <title>Build your first blog using React | Sanity.io</title>
      <link>https://devblog.dinobansigan.com/build-your-first-blog-using-react-sanity-io?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[This is a pretty good guide to building a blog using ReactJS and Sanity. That said, I did run into a number of issues while trying to follow it. This post is about the issues I ran into and the solutions for them.&#xA;&#xA;---&#xA;&#xA;When I got to the part where it says to run sanity init, I got errors in Visual Studio Code saying the PowerShell script is not digitally signed, so it&#39;s not allowed to run. The fix for this was to run: Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force in the VS Code terminal.&#xA;&#xA;---&#xA;&#xA;Then I got the error Error: self signed certificate in certificate chain. Looked it up online and found that it seems to be caused by my VPN connection. I disconnected from my work VPN and it did resolve my issue.&#xA;&#xA;---&#xA;&#xA;I got all the way to the part of the guide where I was Building the page for all the blog posts. After following the instructions and copying the provided code into src/components/AllPosts.js , I kept running into a post.mainImage undefined error. It turns out, the provided code is expecting all posts I created in Sanity to have a main image. I had one for my first post, but didn&#39;t add one to my second post. &#xA;&#xA;The fix for the issue above was to replace img src={post.mainImage.asset.url} alt=&#34;&#34; / with  {typeof post.mainImage !== &#39;undefined&#39; &amp;&amp; img src={post.mainImage.asset.url} alt=&#34;&#34; /}. &#xA;&#xA;What that new line of code does, is check if post.mainImage is NOT undefined, and if so, render the img tag. If it was undefined, as is the case with my second post, it wouldn&#39;t render the tag, thereby avoiding the error.&#xA;&#xA;---&#xA;&#xA;After finishing the guide, I needed to figure out how to deploy the React app to Netlify. Posts online say it is as easy as dropping a Build folder into Netlify. However, there&#39;s no Build folder in sight in VS Code. Turns out, I had to run npm run build to generate the Build folder and its contents. After that, it was as easy as dropping the folder into the Netlify&#39;s deploy folder. You can find the live site on here.&#xA;&#xA;Initially the site would load, but the blog posts wouldn&#39;t show up. The fix for this was to add the site url, https://laughing-lamarr-50f7df.netlify.app, as a CORS Origins entry in my Sanity account&#39;s API settings.&#xA;&#xA;Tags: #ReactJS #Blog #Bookmarks&#xA;&#xA;a href=&#34;https://remark.as/p/devblog.dinobansigan.com/build-your-first-blog-using-react-sanity-io&#34;Discuss.../a or leave a comment below.]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="https://www.sanity.io/guides/build-your-first-blog-using-react">This</a> is a pretty good guide to building a blog using <a href="https://reactjs.org/">ReactJS</a> and <a href="https://www.sanity.io/">Sanity</a>. That said, I did run into a number of issues while trying to follow it. This post is about the issues I ran into and the solutions for them.</p>

<hr/>

<p>When I got to the part where it says to run <code>sanity init</code>, I got errors in Visual Studio Code saying the PowerShell script is not digitally signed, so it&#39;s not allowed to run. The fix for this was to run: <code>Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force</code> in the VS Code terminal.</p>

<hr/>

<p>Then I got the error <code>Error: self signed certificate in certificate chain</code>. Looked it up online and found that it seems to be caused by my VPN connection. I disconnected from my work VPN and it did resolve my issue.</p>

<hr/>

<p>I got all the way to the part of the guide where I was <a href="https://www.sanity.io/guides/build-your-first-blog-using-react#building-the-page-for-all-the-blog-posts-09943e6d2b68">Building the page for all the blog posts</a>. After following the instructions and copying the provided code into <code>src/components/AllPosts.js</code> , I kept running into a <code>post.mainImage undefined</code> error. It turns out, the provided code is expecting all posts I created in Sanity to have a main image. I had one for my first post, but didn&#39;t add one to my second post.</p>

<p>The fix for the issue above was to replace <code>&lt;img src={post.mainImage.asset.url} alt=&#34;&#34; /&gt;</code> with <code>{typeof post.mainImage !== &#39;undefined&#39; &amp;&amp; &lt;img src={post.mainImage.asset.url} alt=&#34;&#34; /&gt;}</code>.</p>

<p>What that new line of code does, is check if <code>post.mainImage</code> is NOT undefined, and if so, render the <code>img</code> tag. If it was undefined, as is the case with my second post, it wouldn&#39;t render the tag, thereby avoiding the error.</p>

<hr/>

<p>After finishing the guide, I needed to figure out how to deploy the React app to Netlify. Posts online say it is as easy as dropping a Build folder into Netlify. However, there&#39;s no Build folder in sight in VS Code. Turns out, I had to run <code>npm run build</code> to generate the Build folder and its contents. After that, it was as easy as dropping the folder into the Netlify&#39;s deploy folder. You can find the live site on <a href="https://laughing-lamarr-50f7df.netlify.app/">here</a>.</p>

<p>Initially the site would load, but the blog posts wouldn&#39;t show up. The fix for this was to add the site url, <code>https://laughing-lamarr-50f7df.netlify.app</code>, as a CORS Origins entry in my Sanity account&#39;s API settings.</p>

<p><em>Tags: <a href="https://devblog.dinobansigan.com/tag:ReactJS" class="hashtag"><span>#</span><span class="p-category">ReactJS</span></a> <a href="https://devblog.dinobansigan.com/tag:Blog" class="hashtag"><span>#</span><span class="p-category">Blog</span></a> <a href="https://devblog.dinobansigan.com/tag:Bookmarks" class="hashtag"><span>#</span><span class="p-category">Bookmarks</span></a></em></p>

<p><strong><a href="https://remark.as/p/devblog.dinobansigan.com/build-your-first-blog-using-react-sanity-io">Discuss...</a></strong> or leave a comment below.</p>
]]></content:encoded>
      <guid>https://devblog.dinobansigan.com/build-your-first-blog-using-react-sanity-io</guid>
      <pubDate>Sun, 30 May 2021 04:54:28 +0000</pubDate>
    </item>
    <item>
      <title>Leveling Up: Career Advancement for Software Developers | Peter Lyons</title>
      <link>https://devblog.dinobansigan.com/career-advancement-for-software-developers-peter-lyons?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Extremely good read on how to advance in your career as a software developer. While this guide was mainly written for Junior software developers working at medium-large companies, I reckon even Senior software developers can learn a thing or two from this guide.&#xA;&#xA;Link: Leveling Up: Career Advancement for Software Developers&#xA;&#xA;Tags: #Bookmarks #Career&#xA;&#xA;!--emailsub--&#xA;&#xA;a href=&#34;https://remark.as/p/devblog.dinobansigan.com/career-advancement-for-software-developers-peter-lyons&#34;Discuss.../a or leave a comment below.]]&gt;</description>
      <content:encoded><![CDATA[<p>Extremely good read on how to advance in your career as a software developer. While this guide was mainly written for Junior software developers working at medium-large companies, I reckon even Senior software developers can learn a thing or two from this guide.</p>

<p>Link: <a href="https://peterlyons.com/leveling-up/">Leveling Up: Career Advancement for Software Developers</a></p>

<p><em>Tags: <a href="https://devblog.dinobansigan.com/tag:Bookmarks" class="hashtag"><span>#</span><span class="p-category">Bookmarks</span></a> <a href="https://devblog.dinobansigan.com/tag:Career" class="hashtag"><span>#</span><span class="p-category">Career</span></a></em></p>



<p><strong><a href="https://remark.as/p/devblog.dinobansigan.com/career-advancement-for-software-developers-peter-lyons">Discuss...</a></strong> or leave a comment below.</p>
]]></content:encoded>
      <guid>https://devblog.dinobansigan.com/career-advancement-for-software-developers-peter-lyons</guid>
      <pubDate>Thu, 27 May 2021 18:27:57 +0000</pubDate>
    </item>
    <item>
      <title>Modern CSS Techniques To Improve Legibility | Edoardo Cavazza (Smashing Magazine)</title>
      <link>https://devblog.dinobansigan.com/modern-css-techniques-to-improve-legibility-edoardo-cavazza-smashing?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[This seems like a great primer for learning how to use CSS to improve readability of posts on your site. It covers a bunch of CSS topics like font size units, letter and word spacing, width and alignment of text, etc...&#xA;&#xA;Link: Modern CSS Techniques To Improve Legibility&#xA;&#xA;hr class=&#34;sb&#34;/&#xA;This post is Day 36 of my &amp;#35;100DaysToOffload challenge. Visit https://100daystooffload.com to get more info, or to get involved.&#xA;&#xA;Tags: #Bookmarks #WebDevelopment #100DaysToOffload&#xA;&#xA;!--emailsub--&#xA;&#xA;a href=&#34;https://remark.as/p/devblog.dinobansigan.com/modern-css-techniques-to-improve-legibility-edoardo-cavazza-smashing&#34;Discuss.../a or leave a comment below.]]&gt;</description>
      <content:encoded><![CDATA[<p>This seems like a great primer for learning how to use CSS to improve readability of posts on your site. It covers a bunch of CSS topics like font size units, letter and word spacing, width and alignment of text, etc...</p>

<p>Link: <a href="https://www.smashingmagazine.com/2020/07/css-techniques-legibility/">Modern CSS Techniques To Improve Legibility</a></p>

<hr class="sb"/>

<p><em>This post is Day 36 of my #100DaysToOffload challenge. Visit <a href="https://100daystooffload.com">https://100daystooffload.com</a> to get more info, or to get involved.</em></p>

<p><em>Tags: <a href="https://devblog.dinobansigan.com/tag:Bookmarks" class="hashtag"><span>#</span><span class="p-category">Bookmarks</span></a> <a href="https://devblog.dinobansigan.com/tag:WebDevelopment" class="hashtag"><span>#</span><span class="p-category">WebDevelopment</span></a> <a href="https://devblog.dinobansigan.com/tag:100DaysToOffload" class="hashtag"><span>#</span><span class="p-category">100DaysToOffload</span></a></em></p>



<p><strong><a href="https://remark.as/p/devblog.dinobansigan.com/modern-css-techniques-to-improve-legibility-edoardo-cavazza-smashing">Discuss...</a></strong> or leave a comment below.</p>
]]></content:encoded>
      <guid>https://devblog.dinobansigan.com/modern-css-techniques-to-improve-legibility-edoardo-cavazza-smashing</guid>
      <pubDate>Mon, 17 Aug 2020 14:29:03 +0000</pubDate>
    </item>
    <item>
      <title>Excalidraw</title>
      <link>https://devblog.dinobansigan.com/excalidraw?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Bookmarking this before I forget... again. This is a pretty cool, easy to use, open source virtual whiteboarding tool. It allows you to quickly create workflow diagrams using just a browser.&#xA;&#xA;Excalidraw is a whiteboard tool that lets you easily sketch diagrams with a hand-drawn feel.&#xA;&#xA;Link: Excalidraw | Source Code&#xA;&#xA;I would have never discovered Excalidraw had it not been for this post by Erik.&#xA;&#xA;Tags: #Bookmarks #Tools&#xA;&#xA;!--emailsub--&#xA;&#xA;a href=&#34;https://remark.as/p/devblog.dinobansigan.com/excalidraw&#34;Discuss.../a or leave a comment below.]]&gt;</description>
      <content:encoded><![CDATA[<p>Bookmarking this before I forget... again. This is a pretty cool, easy to use, open source virtual whiteboarding tool. It allows you to quickly create workflow diagrams using just a browser.</p>

<p><img src="https://i.snap.as/sYd92oo.png" alt="Excalidraw is a whiteboard tool that lets you easily sketch diagrams with a hand-drawn feel."/></p>

<p>Link: <a href="https://excalidraw.com/">Excalidraw</a> | <a href="https://github.com/excalidraw/excalidraw">Source Code</a></p>

<p>I would have never discovered Excalidraw had it not been for this <a href="https://erik.itland.no/ux-challenge-transfer-money-between-accounts">post</a> by <a href="https://erik.itland.no/">Erik</a>.</p>

<p><em>Tags: <a href="https://devblog.dinobansigan.com/tag:Bookmarks" class="hashtag"><span>#</span><span class="p-category">Bookmarks</span></a> <a href="https://devblog.dinobansigan.com/tag:Tools" class="hashtag"><span>#</span><span class="p-category">Tools</span></a></em></p>



<p><strong><a href="https://remark.as/p/devblog.dinobansigan.com/excalidraw">Discuss...</a></strong> or leave a comment below.</p>
]]></content:encoded>
      <guid>https://devblog.dinobansigan.com/excalidraw</guid>
      <pubDate>Fri, 24 Jul 2020 19:20:36 +0000</pubDate>
    </item>
    <item>
      <title>Failed #SquadGoals | Jeremiah Lee</title>
      <link>https://devblog.dinobansigan.com/failed-squadgoals-jeremiah-lee?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Interesting read on “the Spotify model”, why Spotify themselves don’t use it and neither should you.&#xA;&#xA;  While Spotify gave teams control over their way of working, many people did not have a basic understanding of Agile practices. This resulted in teams iterating through process tweaks in blind hope of finding the combination that would help them improve their delivery. People lacked a common language to effectively discuss the process problems, the education to solve them, and the experience to evaluate performance. It was not really agile. It was just not-waterfall.&#xA;&#xA;Huh, this seems awfully familiar.&#xA;&#xA;  When Agile Scrum introduced new meanings to a bunch of words like burn-down and sprint, it did so because it introduced new concepts that needed names. Spotify introduced the vocabulary of missions, tribes, squads, guilds, and chapter leads for describing its way of working. It gave the illusion it had created something worthy of needing to learn unusual word choices. However, if we remove the unnecessary synonyms from the ideas, the Spotify model is revealed as a collection of cross-functional teams with too much autonomy and a poor management structure.&#xA;&#xA;When I first learned about “the Spotify model”, I loved the idea of getting to work in a tribe, squad or guild. I thought it sounded pretty cool. I bet it appealed to most developers who&#39;ve played MMOs before.&#xA;&#xA;Link: Failed &amp;#35;SquadGoals&#xA;&#xA;Tags: #Bookmarks #Agile #SoftwareDevelopmentManagement&#xA;&#xA;a href=&#34;https://remark.as/p/devblog.dinobansigan.com/failed-squadgoals-jeremiah-lee&#34;Discuss.../a or leave a comment below.]]&gt;</description>
      <content:encoded><![CDATA[<p>Interesting read on “the Spotify model”, why Spotify themselves don’t use it and neither should you.</p>

<blockquote><p>While Spotify gave teams control over their way of working, many people did not have a basic understanding of Agile practices. <strong>This resulted in teams iterating through process tweaks in blind hope of finding the combination that would help them improve their delivery.</strong> People lacked a common language to effectively discuss the process problems, the education to solve them, and the experience to evaluate performance. <strong>It was not really agile. It was just not-waterfall.</strong></p></blockquote>

<p>Huh, this seems awfully familiar.</p>

<blockquote><p>When Agile Scrum introduced new meanings to a bunch of words like burn-down and sprint, it did so because it introduced new concepts that needed names. Spotify introduced the vocabulary of <em>missions, tribes, squads, guilds, and chapter</em> leads for describing its way of working. It gave the illusion it had created something worthy of needing to learn unusual word choices. However, if we remove the unnecessary synonyms from the ideas, the Spotify model is revealed as a collection of cross-functional teams with too much autonomy and a poor management structure.</p></blockquote>

<p>When I first learned about “the Spotify model”, I loved the idea of getting to work in a tribe, squad or guild. I thought it sounded pretty cool. I bet it appealed to most developers who&#39;ve played MMOs before.</p>

<p>Link: <a href="https://www.jeremiahlee.com/posts/failed-squad-goals/">Failed #SquadGoals</a></p>

<p><em>Tags: <a href="https://devblog.dinobansigan.com/tag:Bookmarks" class="hashtag"><span>#</span><span class="p-category">Bookmarks</span></a> <a href="https://devblog.dinobansigan.com/tag:Agile" class="hashtag"><span>#</span><span class="p-category">Agile</span></a> <a href="https://devblog.dinobansigan.com/tag:SoftwareDevelopmentManagement" class="hashtag"><span>#</span><span class="p-category">SoftwareDevelopmentManagement</span></a></em></p>

<p><strong><a href="https://remark.as/p/devblog.dinobansigan.com/failed-squadgoals-jeremiah-lee">Discuss...</a></strong> or leave a comment below.</p>
]]></content:encoded>
      <guid>https://devblog.dinobansigan.com/failed-squadgoals-jeremiah-lee</guid>
      <pubDate>Tue, 12 May 2020 19:34:14 +0000</pubDate>
    </item>
    <item>
      <title>Most Popular Programming Languages - TIOBE Index | TIOBE</title>
      <link>https://devblog.dinobansigan.com/most-popular-programming-languages-tiobe-index-tiobe?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[I was reading this article about Xamarin and Swift when I noticed this useful piece of information at the end:&#xA;&#xA;  If Swift continues to take the iOS world by storm, more such documentation may be needed. The February 2020 TIOBE Index, which measures programming language popularity, shows Swift at No. 10, having moved up a full 10 positions from the February 2019 ranking, making it the biggest mover in the top 20. C#, used for Xamarin coding, is at No. 5, moving up from No. 7 last year.&#xA;&#xA;Interesting. That bit of info led me to this, the TIOBE Index.&#xA;&#xA;  The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.&#xA;&#xA;  The index can be used to check whether your programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system.&#xA;&#xA;I see this as a very useful tool for software developers, not just in figuring out what programming language to use when building a new application, but also in figuring out what programming language to learn or focus on to improve your career as a software developer.&#xA;&#xA;I&#39;m glad to see C# making its way up on the list. I thought Python would be on top, but I guess Java is still too popular nowadays. Also, I keep reading about Rust in the dev blogs/websites that I follow. I wonder when it will break into the Top 20 list? Either way, I think this index is a good list to keep our eyes on as software developers.&#xA;&#xA;Tags: #Bookmarks #ProgrammingLanguages&#xA;&#xA;a href=&#34;https://remark.as/p/devblog.dinobansigan.com/most-popular-programming-languages-tiobe-index-tiobe&#34;Discuss.../a or leave a comment below.]]&gt;</description>
      <content:encoded><![CDATA[<p>I was reading <a href="https://visualstudiomagazine.com/articles/2020/02/28/xamarin-swift.aspx">this article about Xamarin and Swift</a> when I noticed this useful piece of information at the end:</p>

<blockquote><p>If Swift continues to take the iOS world by storm, more such documentation may be needed. The February 2020 TIOBE Index, which measures programming language popularity, shows Swift at No. 10, having moved up a full 10 positions from the February 2019 ranking, making it the biggest mover in the top 20. C#, used for Xamarin coding, is at No. 5, moving up from No. 7 last year.</p></blockquote>

<p>Interesting. That bit of info led me to this, the <a href="https://www.tiobe.com/tiobe-index/">TIOBE Index</a>.</p>

<blockquote><p>The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.</p>

<p>The index can be used to check whether your programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system.</p></blockquote>

<p>I see this as a very useful tool for software developers, not just in figuring out what programming language to use when building a new application, but also in figuring out what programming language to learn or focus on to improve your career as a software developer.</p>

<p>I&#39;m glad to see C# making its way up on the list. I thought Python would be on top, but I guess Java is still too popular nowadays. Also, I keep reading about Rust in the dev blogs/websites that I follow. I wonder when it will break into the Top 20 list? Either way, I think this index is a good list to keep our eyes on as software developers.</p>

<p><em>Tags: <a href="https://devblog.dinobansigan.com/tag:Bookmarks" class="hashtag"><span>#</span><span class="p-category">Bookmarks</span></a> <a href="https://devblog.dinobansigan.com/tag:ProgrammingLanguages" class="hashtag"><span>#</span><span class="p-category">ProgrammingLanguages</span></a></em></p>

<p><strong><a href="https://remark.as/p/devblog.dinobansigan.com/most-popular-programming-languages-tiobe-index-tiobe">Discuss...</a></strong> or leave a comment below.</p>
]]></content:encoded>
      <guid>https://devblog.dinobansigan.com/most-popular-programming-languages-tiobe-index-tiobe</guid>
      <pubDate>Wed, 04 Mar 2020 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Hundreds of practical ASP.NET Core samples to learn the fundamentals | Scott Hanselman</title>
      <link>https://devblog.dinobansigan.com/hundreds-of-practical-asp-net-core-samples-to-learn-the-fundamentals-scott?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[This is a great resource for anyone who wants to get started with C# and .NET Core.&#xA;&#xA;Link: Hundreds of practical ASP.NET Core samples to learn the fundamentals&#xA;&#xA;Tags: #Bookmarks #AspDotNet #DotNet #DotNetCore&#xA;&#xA;a href=&#34;https://remark.as/p/devblog.dinobansigan.com/hundreds-of-practical-asp-net-core-samples-to-learn-the-fundamentals-scott&#34;Discuss.../a or leave a comment below.]]&gt;</description>
      <content:encoded><![CDATA[<p>This is a great resource for anyone who wants to get started with C# and .NET Core.</p>

<p>Link: <a href="https://www.hanselman.com/blog/HundredsOfPracticalASPNETCoreSamplesToLearnTheFundamentals.aspx/">Hundreds of practical ASP.NET Core samples to learn the fundamentals</a></p>

<p><em>Tags: <a href="https://devblog.dinobansigan.com/tag:Bookmarks" class="hashtag"><span>#</span><span class="p-category">Bookmarks</span></a> <a href="https://devblog.dinobansigan.com/tag:AspDotNet" class="hashtag"><span>#</span><span class="p-category">AspDotNet</span></a> <a href="https://devblog.dinobansigan.com/tag:DotNet" class="hashtag"><span>#</span><span class="p-category">DotNet</span></a> <a href="https://devblog.dinobansigan.com/tag:DotNetCore" class="hashtag"><span>#</span><span class="p-category">DotNetCore</span></a></em></p>

<p><strong><a href="https://remark.as/p/devblog.dinobansigan.com/hundreds-of-practical-asp-net-core-samples-to-learn-the-fundamentals-scott">Discuss...</a></strong> or leave a comment below.</p>
]]></content:encoded>
      <guid>https://devblog.dinobansigan.com/hundreds-of-practical-asp-net-core-samples-to-learn-the-fundamentals-scott</guid>
      <pubDate>Wed, 19 Feb 2020 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Popular Posts Glitch App</title>
      <link>https://devblog.dinobansigan.com/popular-posts-glitch-app?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Update 4/23/2021: The write.as team has introduced some rate-limiting features on their API to combat spam bots. That stopped this Glitch app and my other Blazor WASM apps from working.&#xA;&#xA;I created a Glitch App that displays the most viewed posts on my online journal. I embedded it on my About page. Just to show how easy it is to embed a Glitch app into a Write.as post, I embedded it at the bottom of this post too. For more information on embedding Glitch apps into posts on Write.as, look here.&#xA;!--more--&#xA;&#xA;Some notes on what I learned while working on this app:&#xA;&#xA;Similar to when I worked on the Search app, you&#39;ll want to have a basic understanding of web development, which means knowing a little bit about HTML, CSS, some Javascript and some Python. For this app though, I had to do a lot more Python programming.&#xA;To create this app, I remixed the Search app I created. I did this because the app already had code to search through all the posts I have on my journal. All I needed to do, was add code to find the most viewed posts out of all posts.&#xA;Finding the most viewed posts means sorting the list by view count and then returning the top X amount of posts. Both of those actions, I had to learn how to do in Python. Fun stuff.&#xA;I also had to learn how to typecast a string into an int in Python. Note, that in Python, you wrap the parenthesis on the object you are casting, not on the data type you want to cast it to. Minor syntax difference compared to typecasting in C#, but it won&#39;t work unless you get it right.&#xA;Next I had to learn how to display the posts on a webpage as soon as I open the app. This was noteworthy because the original Search app was designed to work with two webpages; a Search page and a Search Results page. For this app, I needed to show the Search Results page as soon as I open the app. To do this, I tinkered with the code by commenting out a bunch of stuff and running the app to see what would happen. I didn&#39;t know what I was doing most of the time, but that was what made it all the more fun for me. I&#39;m so used to working with C# and .NET where I have an idea of what will happen just by looking at the code. It was a fun change of pace to work with something where, I had no idea what would happen if I comment out lines of code.&#xA;Lastly, I decided to clean up all my Inline CSS and learned how to use Internal CSS instead. Okay, it wasn&#39;t really that I didn&#39;t know how to style a webpage using Internal CSS, but it was more about the fact that I&#39;ve never had to style a webpage using Internal CSS, ever. Not even in my work as a software developer. So, I just wanted some real world practice with it.&#xA;&#xA;Some links to pages that helped me get it done:&#xA;&#xA;Sorting Mini-HOW TO&#xA;How to Sort a List, Tuple or Object (with sorted) in Python&#xA;How to get top 5 objects from an array in Python&#xA;How to use comments in Python&#xA;Python:Convert a String to a Number&#xA;HTML Styles - CSS&#xA;&#xA;Tags: #Bookmarks #Glitch #Python&#xA;&#xA;div class=&#34;glitch-embed-wrap&#34; style=&#34;height: 350px; width: 100%;&#34;&#xA;  &lt;iframe&#xA;    src=&#34;https://glitch.com/embed/#!/embed/popular-posts-wa?path=app.py&amp;previewSize=100&#34;&#xA;    title=&#34;popular-posts-wa on Glitch&#34;&#xA;    allow=&#34;geolocation; microphone; camera; midi; vr; encrypted-media&#34;&#xA;    style=&#34;height: 100%; width: 100%; border: 0;&#34;  /iframe&#xA;/div&#xA;&#xA;a href=&#34;https://remark.as/p/devblog.dinobansigan.com/popular-posts-glitch-app&#34;Discuss.../a or leave a comment below.]]&gt;</description>
      <content:encoded><![CDATA[<p><em>Update 4/23/2021: The write.as team has introduced some rate-limiting features on their API to combat spam bots. That stopped this Glitch app and my other Blazor WASM apps from working.</em></p>

<p>I created a <a href="https://glitch.com/~popular-posts-wa">Glitch App</a> that displays the most viewed posts on my <a href="https://journal.dinobansigan.com/">online journal</a>. I embedded it on my <a href="https://journal.dinobansigan.com/about">About page</a>. Just to show how easy it is to embed a <a href="https://glitch.com/">Glitch</a> app into a <a href="https://write.as/">Write.as</a> post, I embedded it at the bottom of this post too. For more information on embedding Glitch apps into posts on Write.as, look <a href="https://discuss.write.as/t/is-it-possible-to-embed-a-glitch-app-into-a-write-as-page/1051/2?u=dino">here</a>.
</p>

<p>Some notes on what I learned while working on this app:</p>
<ul><li>Similar to when I worked on the Search app, you&#39;ll want to have a basic understanding of web development, which means knowing a little bit about HTML, CSS, some Javascript and some Python. <em>For this app though, I had to do a lot more Python programming.</em></li>
<li>To create this app, I remixed the <a href="https://glitch.com/~search-journal">Search app</a> I created. I did this because the app already had code to search through all the posts I have on my journal. All I needed to do, was add code to find the most viewed posts out of all posts.</li>
<li>Finding the most viewed posts means sorting the list by view count and then returning the top X amount of posts. Both of those actions, I had to learn how to do in Python. Fun stuff.</li>
<li>I also had to learn how to typecast a <code>string</code> into an <code>int</code> in Python. Note, that in Python, you wrap the parenthesis on the object you are casting, not on the data type you want to cast it to. <em>Minor syntax difference compared to typecasting in C#, but it won&#39;t work unless you get it right.</em></li>
<li>Next I had to learn how to display the posts on a webpage as soon as I open the app. This was noteworthy because the original Search app was designed to work with two webpages; a <em>Search</em> page and a <em>Search Results</em> page. For this app, I needed to show the <em>Search Results</em> page as soon as I open the app. To do this, I tinkered with the code by commenting out a bunch of stuff and running the app to see what would happen. I didn&#39;t know what I was doing most of the time, but that was what made it all the more fun for me. I&#39;m so used to working with C# and .NET where I have an idea of what will happen just by looking at the code. It was a fun change of pace to work with something where, I had no idea what would happen if I comment out lines of code.</li>
<li>Lastly, I decided to clean up all my Inline CSS and learned how to use Internal CSS instead. <em>Okay, it wasn&#39;t really that I didn&#39;t know how to style a webpage using Internal CSS, but it was more about the fact that I&#39;ve never had to style a webpage using Internal CSS, ever. Not even in my work as a software developer. So, I just wanted some real world practice with it.</em></li></ul>

<p>Some links to pages that helped me get it done:</p>
<ul><li><a href="https://wiki.python.org/moin/HowTo/Sorting">Sorting Mini-HOW TO</a></li>
<li><a href="https://www.pythoncentral.io/how-to-sort-a-list-tuple-or-object-with-sorted-in-python/">How to Sort a List, Tuple or Object (with sorted) in Python</a></li>
<li><a href="https://stackoverflow.com/a/56005222/5041911">How to get top 5 objects from an array in Python</a></li>
<li><a href="https://www.pythonforbeginners.com/comments/comments-in-python">How to use comments in Python</a></li>
<li><a href="https://progzoo.net/wiki/Python:Convert_a_String_to_a_Number">Python:Convert a String to a Number</a></li>
<li><a href="https://www.w3schools.com/html/html_css.asp">HTML Styles – CSS</a></li></ul>

<p><em>Tags: <a href="https://devblog.dinobansigan.com/tag:Bookmarks" class="hashtag"><span>#</span><span class="p-category">Bookmarks</span></a> <a href="https://devblog.dinobansigan.com/tag:Glitch" class="hashtag"><span>#</span><span class="p-category">Glitch</span></a> <a href="https://devblog.dinobansigan.com/tag:Python" class="hashtag"><span>#</span><span class="p-category">Python</span></a></em></p>

<div class="glitch-embed-wrap" style="height: 350px; width: 100%;">
  <iframe src="https://glitch.com/embed/#!/embed/popular-posts-wa?path=app.py&amp;previewSize=100" title="popular-posts-wa on Glitch" style="height: 100%; width: 100%; border: 0;">
  </iframe>
</div>

<p><strong><a href="https://remark.as/p/devblog.dinobansigan.com/popular-posts-glitch-app">Discuss...</a></strong> or leave a comment below.</p>
]]></content:encoded>
      <guid>https://devblog.dinobansigan.com/popular-posts-glitch-app</guid>
      <pubDate>Wed, 22 Jan 2020 20:50:11 +0000</pubDate>
    </item>
    <item>
      <title>Search Page Up and Running</title>
      <link>https://devblog.dinobansigan.com/search-page-up-and-running?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Update 4/23/2021: The write.as team has introduced some rate-limiting features on their API to combat spam bots. That stopped this Glitch app and my other Blazor WASM apps from working.&#xA;&#xA;Took me a couple of days, but I got my journal search page up and running. That was a great learning experience.&#xA;&#xA;If you want to remix my search app, you can find it here. If you want to remix the original Write.as Search app, you can find it here.&#xA;&#xA;Prior to creating a Write.as blog, I&#39;ve never even heard of Glitch. Below is a list of notes and references I&#39;ve made while trying to get my search page working.&#xA;!--more--&#xA;&#xA;I still don&#39;t exactly know how to describe Glitch. The best I can come up with is that it is like a web application generator, that is sort of like Github, where you can fork (remix) projects (apps) and test it right on the browser. With Glitch, your browser is your IDE; you develop and test on it. It also acts like &#34;source control&#34; with the ability to roll back (rewind) to your previous changes.&#xA;To get the search page working, you need to know at least the basics of web development. I am primarily a back-end developer, so it took me awhile to get my search page working the way I want it to. Specifically you will need to know the basics of HTML, CSS and Javascript. Will also help to know a little bit of Python.&#xA;Prior to me working on this search page app, I&#39;ve never even seen Python code. I&#39;ve heard of it, (isn&#39;t it like the most popular programming language right now?), but never had to use it. &#xA;   Pro tip: their &#34;if&#34; statements end with a colon.&#xA;I&#39;ve also never heard of Flask until I had to figure out how the HTMLs were getting rendered by Python. &#xA;That lead me to figuring out that Flask uses the Jinja2 template engine. This stumped me for awhile, because the template language looked very similar to the Liquid template language that the Jekyll static site generator uses.&#xA;&#xA;Some links to pages that helped me get it done:&#xA;&#xA;Rendering Templates with Flask&#xA;Python Tutorial&#xA;Javascript - Disable button when Textfield is empty&#xA;CSS - Stop text from overflowing&#xA;Checking for null or empty with Jinja2&#xA;Trimming strings with Jinja2&#xA;Removing unnecessary white space from Jinja rendered template&#xA;&#xA;Tags: #SiteUpdates #Bookmarks #Glitch #Python&#xA;&#xA;a href=&#34;https://remark.as/p/devblog.dinobansigan.com/search-page-up-and-running&#34;Discuss.../a or leave a comment below.]]&gt;</description>
      <content:encoded><![CDATA[<p><em>Update 4/23/2021: The write.as team has introduced some rate-limiting features on their API to combat spam bots. That stopped this Glitch app and my other Blazor WASM apps from working.</em></p>

<p>Took me a couple of days, but I got my journal <a href="https://search-journal.glitch.me/">search page</a> up and running. That was a great learning experience.</p>

<p>If you want to remix my search app, you can find it <a href="https://glitch.com/~search-journal">here</a>. If you want to remix the original Write.as Search app, you can find it <a href="https://glitch.com/~write-as-search">here</a>.</p>

<p>Prior to creating a Write.as blog, I&#39;ve never even heard of <a href="https://glitch.com/">Glitch</a>. Below is a list of notes and references I&#39;ve made while trying to get my search page working.
</p>
<ul><li>I still don&#39;t exactly know how to describe Glitch. The best I can come up with is that it is like a web application generator, that is sort of like <a href="https://github.com/">Github</a>, where you can fork (remix) projects (apps) and test it right on the browser. With Glitch, your browser is your IDE; you develop and test on it. It also acts like “source control” with the ability to roll back (rewind) to your previous changes.</li>
<li>To get the search page working, you need to know at least the basics of web development. I am primarily a back-end developer, so it took me awhile to get my search page working the way I want it to. Specifically you will need to know the basics of HTML, CSS and Javascript. Will also help to know a little bit of Python.</li>
<li>Prior to me working on this search page app, I&#39;ve never even seen <a href="https://en.wikipedia.org/wiki/Python_%28programming_language%29">Python</a> code. I&#39;ve heard of it, <em>(isn&#39;t it like the most popular programming language right now?)</em>, but never had to use it.
<ul><li>Pro tip: their “if” statements end with a colon.</li></ul></li>
<li>I&#39;ve also never heard of <a href="https://www.fullstackpython.com/flask.html">Flask</a> until I had to figure out how the HTMLs were getting rendered by Python.</li>
<li>That lead me to figuring out that Flask uses the <a href="https://www.fullstackpython.com/jinja2.html">Jinja2 template engine</a>. This stumped me for awhile, because the template language looked very similar to the <a href="https://shopify.github.io/liquid/">Liquid template language</a> that the Jekyll static site generator uses.</li></ul>

<p>Some links to pages that helped me get it done:</p>
<ul><li><a href="https://flask.palletsprojects.com/en/1.1.x/quickstart/">Rendering Templates with Flask</a></li>
<li><a href="https://www.tutorialspoint.com/python/index.htm">Python Tutorial</a></li>
<li><a href="https://stackoverflow.com/a/7067040/5041911">Javascript – Disable button when Textfield is empty</a></li>
<li><a href="https://stackoverflow.com/a/32817857/5041911">CSS – Stop text from overflowing</a></li>
<li><a href="https://stackoverflow.com/a/21743006/5041911">Checking for null or empty with Jinja2</a></li>
<li><a href="https://stackoverflow.com/a/41791375/5041911">Trimming strings with Jinja2</a></li>
<li><a href="https://stackoverflow.com/a/35777386/5041911">Removing unnecessary white space from Jinja rendered template</a></li></ul>

<p><em>Tags: <a href="https://devblog.dinobansigan.com/tag:SiteUpdates" class="hashtag"><span>#</span><span class="p-category">SiteUpdates</span></a> <a href="https://devblog.dinobansigan.com/tag:Bookmarks" class="hashtag"><span>#</span><span class="p-category">Bookmarks</span></a> <a href="https://devblog.dinobansigan.com/tag:Glitch" class="hashtag"><span>#</span><span class="p-category">Glitch</span></a> <a href="https://devblog.dinobansigan.com/tag:Python" class="hashtag"><span>#</span><span class="p-category">Python</span></a></em></p>

<p><strong><a href="https://remark.as/p/devblog.dinobansigan.com/search-page-up-and-running">Discuss...</a></strong> or leave a comment below.</p>
]]></content:encoded>
      <guid>https://devblog.dinobansigan.com/search-page-up-and-running</guid>
      <pubDate>Fri, 13 Dec 2019 23:15:38 +0000</pubDate>
    </item>
  </channel>
</rss>