<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Basti Ortiz&apos;s Articles</title><description>Articles about software engineering, programming languages, and building dependable systems.</description><link>https://bastidood.dev/</link><item><title>The Mental Framework for Unlocking Agentic Workflows</title><link>https://bastidood.dev/articles/unlocking-agentic-workflows/</link><guid isPermaLink="true">https://bastidood.dev/articles/unlocking-agentic-workflows/</guid><description>Long-running agentic workflows will inevitably hit a context wall: the context window fills, compaction runs, and layered summaries start replacing the details you still needed. In this article, we discuss the Principle of Least Context and what that looks like in practice, especially towards effective map-reduce workflows.</description><pubDate>Sun, 19 Apr 2026 15:22:44 GMT</pubDate><category>ai</category><category>agents</category><category>llm</category><category>claude</category></item><item><title>Coding Agents as a First-Class Consideration in Project Structures</title><link>https://bastidood.dev/articles/vertically-sliced-coding-agents/</link><guid isPermaLink="true">https://bastidood.dev/articles/vertically-sliced-coding-agents/</guid><description>A while back, I wrote about vertically sliced architectures. Today, we revisit the notion of a feature-driven project structure because it also happens to optimize for the way coding agents explore and manipulate codebases.</description><pubDate>Mon, 05 Jan 2026 13:00:34 GMT</pubDate><category>ai</category><category>agents</category><category>llm</category><category>architecture</category></item><item><title>Mastering Python&apos;s Iteration Protocol: Iterables, Iterators, and Generators</title><link>https://bastidood.dev/articles/python-iterables-iterators-generators/</link><guid isPermaLink="true">https://bastidood.dev/articles/python-iterables-iterators-generators/</guid><description>The difference between iterables, iterators, and generators in Python have always been a tricky topic for beginners to learn—so much so that not everyone can think in terms of iterators even later in the Python journey. This article consolidates into one master reference all of my internal lecture notes, private Notion documents, Discord posts, and direct messages on iterators.</description><pubDate>Sun, 12 Oct 2025 21:44:46 GMT</pubDate><category>beginners</category><category>python</category><category>computerscience</category><category>programming</category></item><item><title>🔥 Simulating Course Schedules 600x Faster with Web Workers in CourseCast</title><link>https://bastidood.dev/articles/course-cast-optimization/</link><guid isPermaLink="true">https://bastidood.dev/articles/course-cast-optimization/</guid><description>This is the story of how I made a Monte Carlo simulation of student schedule assignments 600x faster with web workers. In this article, we&apos;ll discuss how I upgraded CourseCast (a course schedule simulator for the Course Match system of the Wharton School of the University of Pennsylvania) from a prototype that struggled with a hundred concurrent users (with ~60 seconds per simulation request) to an infinitely scalable simulator with sub-second execution speeds (faster than a page load!).</description><pubDate>Thu, 21 Aug 2025 15:43:06 GMT</pubDate><category>javascript</category><category>python</category><category>webdev</category><category>performance</category></item><item><title>You&apos;re slicing your architecture wrong!</title><link>https://bastidood.dev/articles/vertically-sliced-architectures/</link><guid isPermaLink="true">https://bastidood.dev/articles/vertically-sliced-architectures/</guid><description>For the longest time, the separation of concerns has been the ultimate guiding principle of software engineering. This eventually gave rise to the ubiquitous MVC architecture. But, in this article, we&apos;ll explore a better way to structure a codebase using a vertically sliced architecture.</description><pubDate>Thu, 15 May 2025 13:29:45 GMT</pubDate><category>beginners</category><category>architecture</category><category>webdev</category><category>devjournal</category></item><item><title>Beware the Global Const</title><link>https://bastidood.dev/articles/beware-the-global-const/</link><guid isPermaLink="true">https://bastidood.dev/articles/beware-the-global-const/</guid><description>It is common wisdom in the programming world to discourage the use of global variables. I&apos;ve recently come across a bug that humbled and reminded me about these pitfalls. Let me tell you a cautionary tale about global configuration objects.</description><pubDate>Sat, 19 Apr 2025 08:33:23 GMT</pubDate><category>javascript</category><category>security</category><category>architecture</category><category>devjournal</category></item><item><title>The Curse of Verbosity and Indirection</title><link>https://bastidood.dev/articles/curse-of-verbosity-and-indirection/</link><guid isPermaLink="true">https://bastidood.dev/articles/curse-of-verbosity-and-indirection/</guid><description>I&apos;ve dealt with a wide spectrum of programming languages over the years. One common theme that I&apos;ve observed is that object-oriented programming patterns tend to yield the most verbose and indirect abstractions. In this article, we explore how pure object-oriented code necessarily leads to more verbose code and more opaque indirections.</description><pubDate>Sun, 23 Mar 2025 17:23:24 GMT</pubDate><category>javascript</category><category>java</category><category>oop</category><category>computerscience</category></item><item><title>I was wrong about array methods and generators...</title><link>https://bastidood.dev/articles/array-methods-vs-generators/</link><guid isPermaLink="true">https://bastidood.dev/articles/array-methods-vs-generators/</guid><description>For the longest time, I&apos;ve always thought that JavaScript generators perform better than chained array methods in terms of execution time. But are generators actually faster than chained array methods? It&apos;s finally time to put that to the test—with statistical rigor of course!</description><pubDate>Mon, 09 Sep 2024 01:17:31 GMT</pubDate><category>javascript</category><category>performance</category><category>computerscience</category><category>datascience</category></item><item><title>A Compelling Case for the Comma Operator</title><link>https://bastidood.dev/articles/comma-operator/</link><guid isPermaLink="true">https://bastidood.dev/articles/comma-operator/</guid><description>The comma operator is one of the lesser-known operators in C-like languages such as JavaScript and C++. Essentially, it delimits a sequence of expressions and only returns the result of the final one. So why would this ever be useful? In this article, I present a compelling case—perhaps the only one frankly speaking—for the comma operator.</description><pubDate>Fri, 06 Sep 2024 21:28:36 GMT</pubDate><category>beginners</category><category>javascript</category><category>rust</category><category>c</category></item><item><title>Bitmasks are not so esoteric and impractical after all...</title><link>https://bastidood.dev/articles/bitmasks/</link><guid isPermaLink="true">https://bastidood.dev/articles/bitmasks/</guid><description>So one of my articles from my naive 2018 self finally bit me in the back side. Six years and one computer science degree later, I have vastly changed my perspective on bitmasks. In this article, we will discuss why bitmasks are not so esoteric and impractical after all.</description><pubDate>Sat, 20 Jul 2024 07:08:16 GMT</pubDate><category>computerscience</category><category>javascript</category><category>c</category></item><item><title>JavaScript First, Then TypeScript</title><link>https://bastidood.dev/articles/js-first-then-ts/</link><guid isPermaLink="true">https://bastidood.dev/articles/js-first-then-ts/</guid><description>A recent trend has shaken up the JavaScript-TypeScript community: the anti-build-step movement. In this article, however, I will not argue whether TypeScript is still relevant today. Instead, I reflect on my own journey of stepping away from TypeScript—but for a completely different reason: consumer semantics!</description><pubDate>Sun, 15 Oct 2023 12:38:52 GMT</pubDate><category>javascript</category><category>typescript</category><category>webdev</category><category>devjournal</category></item><item><title>🤖 Svelte Reviewed: A Masterclass on Empowerment 🤖</title><link>https://bastidood.dev/articles/svelte-reviewed/</link><guid isPermaLink="true">https://bastidood.dev/articles/svelte-reviewed/</guid><description>Cybernetically enhanced web apps: Svelte is Stack Overflow&apos;s most admired JavaScript UI framework in 2023. In this article, we review the merits of the Svelte framework and its wider ecosystem.</description><pubDate>Mon, 11 Sep 2023 09:03:34 GMT</pubDate><category>svelte</category><category>javascript</category><category>frontend</category><category>devjournal</category></item><item><title>Please don&apos;t write confusing conditionals</title><link>https://bastidood.dev/articles/confusing-conditionals/</link><guid isPermaLink="true">https://bastidood.dev/articles/confusing-conditionals/</guid><description>Have you ever spent more than a few seconds staring at the same line of code? How often did you find conditionals that were tricky to parse? In this article, we discuss how confusing conditionals manifest in our code. Along the way, we also explore different refactoring techniques for improving the readability of conditional control flows.</description><pubDate>Wed, 12 Jul 2023 14:41:30 GMT</pubDate><category>beginners</category><category>tips</category><category>programming</category><category>javascript</category></item><item><title>Moving Fast: A Retrospective on Trunk-based Development</title><link>https://bastidood.dev/articles/trunk-based-development/</link><guid isPermaLink="true">https://bastidood.dev/articles/trunk-based-development/</guid><description>In this article, I reflect on my experiences with trunk-based development as the project lead for DocTrack, my undergraduate project that rewrites the University of the Philippines&apos; document tracking system as a progressive web app.</description><pubDate>Wed, 05 Jul 2023 18:58:09 GMT</pubDate><category>git</category><category>devjournal</category><category>productivity</category><category>softwareengineering</category></item><item><title>Promises and Events: Some Pitfalls and Workarounds</title><link>https://bastidood.dev/articles/promises-and-events/</link><guid isPermaLink="true">https://bastidood.dev/articles/promises-and-events/</guid><description>More often than not, we find that promises and events have fundamental incompatibilities that make them difficult to interleave. Ultimately, can promises and events coexist? In this article, we explore this question and propose a neat solution.</description><pubDate>Thu, 04 Aug 2022 12:42:50 GMT</pubDate><category>javascript</category><category>typescript</category><category>tips</category><category>async</category></item><item><title>Dipping Toes into Unsafe Code</title><link>https://bastidood.dev/articles/unsafe-code/</link><guid isPermaLink="true">https://bastidood.dev/articles/unsafe-code/</guid><description>In this article, we implement a safe implementation of a direct-address table using unsafe code in Rust. In doing so, we explore the mindset and thought processes involved when upholding safety.</description><pubDate>Thu, 21 Jul 2022 16:52:51 GMT</pubDate><category>rust</category><category>computerscience</category><category>showdev</category></item><item><title>How Rust helped me power through my C assignments</title><link>https://bastidood.dev/articles/powering-through-c/</link><guid isPermaLink="true">https://bastidood.dev/articles/powering-through-c/</guid><description>After an entire semester of C assignments, I share how Rust patterns and idioms helped me power through it all.</description><pubDate>Sat, 29 Jan 2022 16:23:43 GMT</pubDate><category>rust</category><category>c</category><category>computerscience</category><category>devjournal</category></item><item><title>Optimizing Immutable Strings in Rust</title><link>https://bastidood.dev/articles/optimizing-immutable-strings/</link><guid isPermaLink="true">https://bastidood.dev/articles/optimizing-immutable-strings/</guid><description>If there&apos;s anything about Rust that Rustaceans have a particular aversion to, it would most certainly be cloning and heap allocations. In this article, we will explore how taking advantage of immutability allows us to optimize memory usage.</description><pubDate>Sun, 22 Aug 2021 16:53:06 GMT</pubDate><category>rust</category><category>performance</category><category>tips</category></item><item><title>The Proper Way to Write Async Constructors in JavaScript</title><link>https://bastidood.dev/articles/async-constructors/</link><guid isPermaLink="true">https://bastidood.dev/articles/async-constructors/</guid><description>At the moment, there is no standardized way to write asynchronous constructors in JavaScript. However, this does not mean there aren&apos;t any workarounds! In this article, we will discuss the various ways to emulate `async` in `constructor`. Most of them are not-so-ideal, but in the end, I will demonstrate the proper way.</description><pubDate>Wed, 18 Aug 2021 14:08:39 GMT</pubDate><category>javascript</category><category>typescript</category><category>tips</category><category>async</category></item><item><title>Generic `impl` blocks are kinda like macros...</title><link>https://bastidood.dev/articles/generic-impl-blocks/</link><guid isPermaLink="true">https://bastidood.dev/articles/generic-impl-blocks/</guid><description>As strange as it may seem, generic `impl` blocks actually have macro-like capabilities. When coupled with the trait system, Rust offers a powerful mental framework for composition-based polymorphism. In this article, we will explore how treating generic `impl` blocks like macros can be an insightful shift in perspective when dealing with generics and trait bounds.</description><pubDate>Sat, 27 Feb 2021 10:56:47 GMT</pubDate><category>rust</category><category>oop</category></item><item><title>🦀 Rust Reviewed: Is the hype justified? 🦀</title><link>https://bastidood.dev/articles/rust-reviewed/</link><guid isPermaLink="true">https://bastidood.dev/articles/rust-reviewed/</guid><description>The Rust programming language has steadily been on the rise in terms of adoption and popularity. But is all the hype justified? In this article, I reflect on my experience with Rust in the past year, tackling the golden moments as well as the pain points.</description><pubDate>Tue, 22 Dec 2020 17:49:45 GMT</pubDate><category>rust</category><category>devjournal</category><category>dx</category><category>reflection</category></item><item><title>The Future of &quot;View Page Source&quot;</title><link>https://bastidood.dev/articles/future-of-view-page-source/</link><guid isPermaLink="true">https://bastidood.dev/articles/future-of-view-page-source/</guid><description>The modern Web boasts leaps and bounds of progress in recent years. The Web has truly become a capable, reliable, scalable, and viable platform for modern applications. However, with all of these fancy features comes the cost of complexity. Build systems rendering the Web as a compilation target have become a common trend among production-grade applications. For new aspiring developers (such as ourselves back then), is this really the best path forward?</description><pubDate>Fri, 31 Jul 2020 13:03:08 GMT</pubDate><category>discuss</category><category>webdev</category><category>career</category><category>culture</category></item><item><title>Best Practices for ES2017 Asynchronous Functions (`async`/`await`)</title><link>https://bastidood.dev/articles/async-functions-best-practices/</link><guid isPermaLink="true">https://bastidood.dev/articles/async-functions-best-practices/</guid><description>In the previous article, I discussed the best practices for ES6 promises. Picking up from where we left off, I extend the discussion to ES2017 asynchronous functions, which happen to just be &quot;syntactic sugar&quot; over promises.</description><pubDate>Wed, 29 Jul 2020 10:42:04 GMT</pubDate><category>javascript</category><category>node</category><category>performance</category><category>tips</category></item><item><title>Best Practices for ES6 Promises</title><link>https://bastidood.dev/articles/es6-promises-best-practices/</link><guid isPermaLink="true">https://bastidood.dev/articles/es6-promises-best-practices/</guid><description>ES6 promises are great! Yet... they are still quite painful to deal with. In this article, I share the best practices I have learned over the years that helped me make the most out of asynchronous JavaScript.</description><pubDate>Wed, 22 Jul 2020 13:09:00 GMT</pubDate><category>javascript</category><category>node</category><category>performance</category><category>tips</category></item><item><title>18 Essential Videos That Fundamentally Shaped My Understanding of JavaScript</title><link>https://bastidood.dev/articles/essential-javascript-videos/</link><guid isPermaLink="true">https://bastidood.dev/articles/essential-javascript-videos/</guid><description>Learning JavaScript is a wild, tempestuous journey. With so much to learn, it is difficult to keep up with the times. Here are 18 videos I consider to be &quot;essential&quot; in learning JavaScript at a deeper level. Each of these videos once sparked a &quot;eureka moment&quot; within me that ultimately helped in piecing together the JavaScript puzzle.</description><pubDate>Wed, 08 Jul 2020 11:29:03 GMT</pubDate><category>javascript</category><category>node</category><category>learning</category></item><item><title>The Key to Effective Learning is &quot;Constructive Stupidity&quot;</title><link>https://bastidood.dev/articles/constructive-stupidity/</link><guid isPermaLink="true">https://bastidood.dev/articles/constructive-stupidity/</guid><description>Setting aside harsh connotations for now, &quot;constructive stupidity&quot; plays a major role in one&apos;s motivation to learn. In this article, I illustrate how a shift in mindset (on &quot;stupidity&quot;) can foster a healthy, constructive attitude towards learning.</description><pubDate>Fri, 19 Jun 2020 17:05:43 GMT</pubDate><category>beginners</category><category>career</category><category>learning</category><category>culture</category></item><item><title>Ciphers and Hashes Explained</title><link>https://bastidood.dev/articles/ciphers-and-hashes/</link><guid isPermaLink="true">https://bastidood.dev/articles/ciphers-and-hashes/</guid><description>Cryptography is the fundamental lifeblood of computer security. Unfortunately, with all the hardcore theory and mathematics, it has become one of the least approachable topics in computer science. In this article, as part of our exploration into the essence of cryptography, we will look into the difference between ciphers and hashes.</description><pubDate>Tue, 16 Jun 2020 14:19:22 GMT</pubDate><category>beginners</category><category>security</category><category>computerscience</category><category>crypto</category></item><item><title>JavaScript Concurrency: Avoiding the Sequential Trap</title><link>https://bastidood.dev/articles/sequential-trap/</link><guid isPermaLink="true">https://bastidood.dev/articles/sequential-trap/</guid><description>Idle code is the antithesis of efficiency. In this article, we will look into various ways to reduce a program&apos;s idle time during asynchronous operations. From concepts such as concurrency and proper I/O scheduling, this is the beginning of a series that explores the world of asynchronous JavaScript.</description><pubDate>Sun, 14 Jun 2020 11:26:32 GMT</pubDate><category>javascript</category><category>node</category><category>performance</category><category>async</category></item><item><title>An Introduction to the Server and the Client</title><link>https://bastidood.dev/articles/server-and-client/</link><guid isPermaLink="true">https://bastidood.dev/articles/server-and-client/</guid><description>In a world that heavily depends on the Internet, we often don&apos;t think about the marvelous engineering that makes the modern lifestyle possible. In the first installment of &quot;The Internet in a Nutshell&quot; series, we will explore how the Internet works from a high-level point of view. Throughout this series, we will explore the incredible technologies, infrastructures, and concepts of the Internet that we may have taken for granted in today&apos;s time.</description><pubDate>Mon, 27 Apr 2020 18:26:55 GMT</pubDate><category>beginners</category><category>webdev</category><category>networking</category></item><item><title>Please don&apos;t nest promises</title><link>https://bastidood.dev/articles/please-dont-nest-promises/</link><guid isPermaLink="true">https://bastidood.dev/articles/please-dont-nest-promises/</guid><description>As we accustom ourselves with the magical world of promises and asynchronous functions, JavaScript has truly become more than _just_ a &quot;single-threaded language&quot;. But nevertheless, there is a great responsibility that comes with these modern features. In this article, I shed light on an often overlooked code smell of asynchronous operations: nested promises.</description><pubDate>Mon, 06 Jan 2020 16:15:52 GMT</pubDate><category>javascript</category><category>node</category><category>programming</category><category>tips</category></item><item><title>The Semantics of Falsy Values</title><link>https://bastidood.dev/articles/semantics-of-falsy-values/</link><guid isPermaLink="true">https://bastidood.dev/articles/semantics-of-falsy-values/</guid><description>More often than not, we confuse and interchange the many falsy values in the JavaScript language: `false`, `0`, `null`, and `undefined` among others. In this article, I explain the semantics behind these values so that we can be better informed about their proper usage. By knowing when to use the appropriate falsy value, we can write more readable, maintainable, and semantically correct code.</description><pubDate>Sat, 31 Aug 2019 13:44:33 GMT</pubDate><category>javascript</category><category>semantics</category><category>programming</category></item><item><title>Please don&apos;t forget to write the changelog</title><link>https://bastidood.dev/articles/please-dont-forget-changelog/</link><guid isPermaLink="true">https://bastidood.dev/articles/please-dont-forget-changelog/</guid><description>Changelogs, release notes, and patch notes all have a common objective: to inform readers of recent changes. However, it is unfortunate to know that some still consider the humble changelog as an &quot;optional&quot; stage in the development cycle. In this article, by citing various software changelogs as examples, I discuss how good, clear, and informative changelogs (1) improve overall user experience and (2) establish brand identity and &quot;hype&quot;.</description><pubDate>Thu, 29 Aug 2019 15:46:28 GMT</pubDate><category>ux</category><category>writing</category><category>tips</category><category>opensource</category></item><item><title>A Grammar-Based Naming Convention</title><link>https://bastidood.dev/articles/grammar-based-naming-convention/</link><guid isPermaLink="true">https://bastidood.dev/articles/grammar-based-naming-convention/</guid><description>A programming _language_ is called a _language_ for a reason. In this article, I share with you the grammar-based naming convention I follow for all of my projects. It is indeed a common naming convention, but I hope this article serves as a useful reference for those just beginning their programming journey.</description><pubDate>Tue, 07 May 2019 15:18:19 GMT</pubDate><category>beginners</category><category>programming</category><category>javascript</category></item><item><title>Thank you to byte-sized integers</title><link>https://bastidood.dev/articles/thank-you-to-byte-sized-integers/</link><guid isPermaLink="true">https://bastidood.dev/articles/thank-you-to-byte-sized-integers/</guid><description>With the ubiquity of high-level, dynamically-typed languages, we have lost control over the memory allocations of our numbers. In this article, I take the time to give thanks to the unsung heroes of memory optimization: unsigned integer types.</description><pubDate>Wed, 01 May 2019 08:49:36 GMT</pubDate><category>cpp</category><category>rust</category><category>computerscience</category></item><item><title>A Pedant&apos;s Experiment on Optimizing Callback Functions for Array Iteration</title><link>https://bastidood.dev/articles/optimizing-array-callbacks/</link><guid isPermaLink="true">https://bastidood.dev/articles/optimizing-array-callbacks/</guid><description>I have set out on a quest to find out if storing functions into variables improved the performance of a JavaScript program. The results ultimately reveal how capable a modern JavaScript engine is in optimizing functions (in general).</description><pubDate>Sat, 13 Apr 2019 07:41:25 GMT</pubDate><category>javascript</category><category>node</category><category>performance</category></item><item><title>Programming is Hard</title><link>https://bastidood.dev/articles/programming-is-hard/</link><guid isPermaLink="true">https://bastidood.dev/articles/programming-is-hard/</guid><description>Indeed it is. Hollywood films often portray programmers as fast-typing computer wizards who can &quot;hack&quot; into anything. We all know that this can never be farther from the truth. Here is an article that discusses what goes into the many aspects of &quot;real&quot; programming.</description><pubDate>Sat, 16 Feb 2019 18:44:51 GMT</pubDate><category>programming</category><category>career</category><category>culture</category></item><item><title>Please don&apos;t &quot;overchain&quot; array methods</title><link>https://bastidood.dev/articles/please-dont-overchain-array-methods/</link><guid isPermaLink="true">https://bastidood.dev/articles/please-dont-overchain-array-methods/</guid><description>Array methods are godsends to the JavaScript language. They have made iterating over arrays simpler and more concise than ever (compared to their `for` loop counterparts). However, &quot;overchaining&quot; them can impact performance if we&apos;re not careful.</description><pubDate>Sun, 03 Feb 2019 17:48:17 GMT</pubDate><category>javascript</category><category>functional</category><category>fp</category><category>tips</category></item><item><title>The Many Masks of `const`</title><link>https://bastidood.dev/articles/many-masks-of-const/</link><guid isPermaLink="true">https://bastidood.dev/articles/many-masks-of-const/</guid><description>Immutability is often considered to be a &quot;best practice&quot; in many programming languages. For most of them, it is as simple as declaring a variable `const`. For others, such as C++, it requires a bit more nuance than that.</description><pubDate>Sun, 27 Jan 2019 15:21:03 GMT</pubDate><category>cpp</category><category>beginners</category><category>programming</category></item><item><title>An Introduction to Overloading Operators (for Beginners by a Beginner)</title><link>https://bastidood.dev/articles/operator-overloading-introduction/</link><guid isPermaLink="true">https://bastidood.dev/articles/operator-overloading-introduction/</guid><description>I recently started learning C++ and it is by far one of the funnest programming languages I have ever decided to learn. It is challenging enough to keep me craving for more. To help solidify my newfound knowledge, here is a rather &quot;mild&quot; introduction to operator overloading.</description><pubDate>Wed, 16 Jan 2019 15:53:56 GMT</pubDate><category>beginners</category><category>cpp</category><category>oop</category><category>programming</category></item><item><title>Who or what inspired you to do programming?</title><link>https://bastidood.dev/articles/programming-inspiration/</link><guid isPermaLink="true">https://bastidood.dev/articles/programming-inspiration/</guid><description>At some point in our lives, we decided that we wanted to code for a living. For me, I found my inspiration in video games.</description><pubDate>Sun, 13 Jan 2019 16:30:11 GMT</pubDate><category>discuss</category><category>career</category><category>programming</category></item><item><title>Please don&apos;t commit .env</title><link>https://bastidood.dev/articles/please-dont-commit-env/</link><guid isPermaLink="true">https://bastidood.dev/articles/please-dont-commit-env/</guid><description>Whenever we decide to use .env files to hide our precious API keys and passwords, we are always reminded to never commit the .env file. Despite that, running a quick search on GitHub reveals that there are still a number of people who didn&apos;t get the memo.</description><pubDate>Wed, 19 Dec 2018 18:27:12 GMT</pubDate><category>security</category><category>git</category><category>opensource</category><category>webdev</category></item><item><title>Previewing dev.to&apos;s Upcoming Night Mode</title><link>https://bastidood.dev/articles/previewing-devto-night-mode/</link><guid isPermaLink="true">https://bastidood.dev/articles/previewing-devto-night-mode/</guid><description>Night Mode has been a long requested feature of the site. Everyday, we inch closer to making this a reality thanks to the power of open-source collaboration.</description><pubDate>Sun, 09 Dec 2018 18:03:30 GMT</pubDate><category>meta</category></item><item><title>Demystifying the Long Arrow &quot;Operator&quot;</title><link>https://bastidood.dev/articles/long-arrow-operator/</link><guid isPermaLink="true">https://bastidood.dev/articles/long-arrow-operator/</guid><description>Ever wondered what the &quot;--&gt;&quot; operator means? The &quot;long arrow operator&quot;, as it has been called, serves as a testament to the creativity and cleverness of programmers.</description><pubDate>Fri, 30 Nov 2018 16:08:23 GMT</pubDate><category>javascript</category><category>programming</category></item><item><title>Emulating &quot;Private&quot; Variables in JavaScript with Closures and Factory Functions</title><link>https://bastidood.dev/articles/private-variables-with-closures/</link><guid isPermaLink="true">https://bastidood.dev/articles/private-variables-with-closures/</guid><description>Despite the recent implementation of classes in JavaScript, there has never been a native way of determining the visibility of an object&apos;s property. For now, workarounds are our best bets.</description><pubDate>Fri, 16 Nov 2018 14:18:46 GMT</pubDate><category>javascript</category><category>oop</category><category>functional</category><category>programming</category></item><item><title>&quot;Same Reference&quot; vs. &quot;Same Value&quot;</title><link>https://bastidood.dev/articles/same-reference-vs-same-value/</link><guid isPermaLink="true">https://bastidood.dev/articles/same-reference-vs-same-value/</guid><description>What does it mean to have the &quot;same reference&quot; and to have the &quot;Same value&quot;? Believe it or not, there are subtle differences between the two. Not being aware of them can lead to strange consequences.</description><pubDate>Mon, 05 Nov 2018 13:27:05 GMT</pubDate><category>computerscience</category><category>beginners</category><category>javascript</category></item><item><title>Node.js: Breaking JavaScript out of the browser since 2009</title><link>https://bastidood.dev/articles/nodejs-outside-the-browser/</link><guid isPermaLink="true">https://bastidood.dev/articles/nodejs-outside-the-browser/</guid><description>This is an introduction to Node.js, the free, open-source software that allows JavaScript to be run outside of the browser.</description><pubDate>Sat, 03 Nov 2018 11:57:04 GMT</pubDate><category>node</category><category>javascript</category><category>webdev</category><category>beginners</category></item><item><title>Bitmasks: A very esoteric (and impractical) way of managing booleans</title><link>https://bastidood.dev/articles/bitmasks-for-booleans/</link><guid isPermaLink="true">https://bastidood.dev/articles/bitmasks-for-booleans/</guid><description>Have you ever asked yourself what bitwise operators are for? Well, ask no more because bitmasking has come to the rescue.</description><pubDate>Sun, 28 Oct 2018 08:57:02 GMT</pubDate><category>computerscience</category><category>javascript</category></item><item><title>The difference between x++ and ++x</title><link>https://bastidood.dev/articles/postfix-vs-prefix-increment/</link><guid isPermaLink="true">https://bastidood.dev/articles/postfix-vs-prefix-increment/</guid><description>There are two types of increment/decrement operators: prefix and postfix. Which one should you use?</description><pubDate>Sat, 20 Oct 2018 08:48:39 GMT</pubDate><category>beginners</category><category>javascript</category></item><item><title>Remembering that &quot;functions are objects&quot; can help in writing more concise code</title><link>https://bastidood.dev/articles/functions-are-objects/</link><guid isPermaLink="true">https://bastidood.dev/articles/functions-are-objects/</guid><description>In JavaScript, never forget that functions are also objects.</description><pubDate>Fri, 19 Oct 2018 16:37:06 GMT</pubDate><category>javascript</category></item></channel></rss>