<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://bradtaniguchi.dev/blog</id>
    <title>bradtaniguchi.dev Blog</title>
    <updated>2026-02-27T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://bradtaniguchi.dev/blog"/>
    <subtitle>bradtaniguchi.dev Blog</subtitle>
    <icon>https://bradtaniguchi.dev/img/ai-profile-favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[Browsers, their history and making the most of yours]]></title>
        <id>https://bradtaniguchi.dev/blog/02-27-power-user-browser-features</id>
        <link href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features"/>
        <updated>2026-02-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Do you even know how to use that thing? A deep dive into the history of browsers, and how to make the most of them.]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">21<!-- --> min read</span></span></div></div><p>I bet you are reading this on your browser. Are you certified to use that thing? Where did you get your license? Do you know how to operate it? No seriously? Do you? DO YOU???</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-wonderful-world-of-browsers">The wonderful world of browsers<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#the-wonderful-world-of-browsers" class="hash-link" aria-label="Direct link to The wonderful world of browsers" title="Direct link to The wonderful world of browsers" translate="no">​</a></h2>
<p>Okay let’s be <del>slightly more</del> serious, web browsers are probably one of the single most important applications on a device. Browsers are also one of the most important pieces of software in the modern world. They connect the people, power the businesses, drive economies, interface with systems, and connect individuals. They are the pathway <del>to many abilities some consider to be unnatural</del> to many things. Anyone who has used a computer, and interacts with the internet has used one. It's almost guaranteed you are using one as you read this right now. Well maybe you are cool and subscribed to this blog using an RSS feed reader like <a href="https://www.inoreader.com/" target="_blank" rel="noopener noreferrer" class="">inoreader</a>. No, I'm not paid to say that... Why do you keep asking?</p>
<p>Anyways, their designs have been well tested, iterated upon, and developed by some of the biggest tech companies on Earth. There have been massive successes, massive failures, huge security issues, long and drawn out rises, and dramatic falls from grace. If web browsers were a TV show they'd be chugging into beyond their 20th season, and it's only getting more popular. They are a staple of the modern world. But like any show that sees their double digit season, let alone a multi-decade show, similar "themes" keep popping up again and again. Why change what works?</p>
<p>Today, you can pick up almost any browser and find yourself at home with similar features, where the general design and features have been the same decades ago. But that doesn't mean all are the same, or try something dramatically different. This also doesn't mean you are using them to their full potential. In fact, it's fairly common to see someone whose browser looks like the image at the top of this post.</p>
<p>This post is all about web browsers, specifically how to use them to their full potential. I'll go into some historical features as a background, core features basically all browsers have, then jump into focusing on just Chrome. Why only Chrome and not other browsers? Well that's what you dear humble browser reader get to learn about.</p>
<p>So sit back, don't touch that tab bar and let's dive into the wonderful world of browsers, and how to make the most of them!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="humble-beginnings">Humble beginnings<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#humble-beginnings" class="hash-link" aria-label="Direct link to Humble beginnings" title="Direct link to Humble beginnings" translate="no">​</a></h2>
<p>It’s hard to talk about web browsers without at least touching on the “birth of the web”.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-dawn-of-a-new-age-a-tabbed-one">The dawn of a new age, a tabbed one<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#the-dawn-of-a-new-age-a-tabbed-one" class="hash-link" aria-label="Direct link to The dawn of a new age, a tabbed one" title="Direct link to The dawn of a new age, a tabbed one" translate="no">​</a></h2>
<p>The turn of the century saw multiple browsers of the time start adding one of the single most critical features that all browsers utilize, which is tabs. Tabs are essentially separate instances of a browser window that allow the user to “switch” between them, allowing them to effectively multi-task. Tabs are available in all sorts of systems that allow users to do multiple things at one time and are an effective user experience pattern.</p>
<p>No other feature exemplifies the power of the web more than browser tabs. It’s fairly common to find yourself “fighting tabs”, if you decide to fight them at all. The web just has <strong>so much</strong> to keep track of, read, find, search and interact with. It’s literally infinite! But that also means your small little tab bar, and your poor RAM sticks. (yo RAM is expensive nowadays, protect that stuff, if anything do it for the RAM!)</p>
<p>Tabs made sense at the time, and still make sense today, but due to the extensive nature of the web, expecting just a simple humble tab bar to “capture” everything you’d want, or possibly want to keep track of is where most users go wrong. But before we continue into the actual tips, let’s continue our trip down memory lane. As tabs by themselves became a core feature of browsers (and other applications), they themselves don’t change much, and most users don’t change how they utilize browsers beyond tabs either. Before we dive into the other features, let’s continue our journey to the present day with the expansion of the web away from just serving websites, but instead turning into a platform for serving everything and anything.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="champions-rise-and-fall">Champions rise and fall<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#champions-rise-and-fall" class="hash-link" aria-label="Direct link to Champions rise and fall" title="Direct link to Champions rise and fall" translate="no">​</a></h2>
<p>With all browsers having tabs, users turned to what's in those tabs. What’s in those tabs has to <strong>work</strong>, and what browser do you use when you want stuff to just work? Of course you use <del>chromium</del> Internet Explorer! Well at least you would if the era were the 2010s.</p>
<p>With the rise of websites such as Facebook, Google, and Amazon. More people used the web for the first time and actually did something. Then came back, then wanted to do more. Tabs (and bookmarks) were around this time to help satisfy the world's budding navigation trends, while listening to nice dial-up noises before checking your AOL account.</p>
<p>Good times, simpler times. But I’m sure some true power users were already starting to see issues with being limited to just tabs and bookmarks. But I wasn’t old enough to know that, so I’ll just gloss over this fact and assume no one was running 100 tabs back then, I’m sure I’m wrong but for the sake of the “story time” aspect of this, we will just run with it.</p>
<p>Around this purposefully vague period of time, the main champions of the web were Microsoft’s Internet Explorer, and Mozilla's Firefox, but a new challenger approaches in the form of Google’s Chrome, which is currently the most popular browser out there. Even if you don’t use Chrome you probably use a version built on top of Chromium, which is the open source project underpinning Chrome, so think Chrome but without Google’s stuff.</p>
<p>Even Microsoft’s champion, Internet Explorer, eventually gave way to Edge, but Edge as it traditionally was built, ended up being a failure. Microsoft eventually waved the white flag and moved to a Chromium based version of Edge that is still around today.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cloud-the-modern-era-and-consolidation-of-power">Cloud, the modern era and consolidation of power<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#cloud-the-modern-era-and-consolidation-of-power" class="hash-link" aria-label="Direct link to Cloud, the modern era and consolidation of power" title="Direct link to Cloud, the modern era and consolidation of power" translate="no">​</a></h2>
<p>The 2010s saw one major shift that cascaded everywhere in the web, including the browser. It was the emergence of what is called “the cloud”. The main incentive of the cloud is to power website infrastructure at a cost. Before this, any company who wanted to run their own website largely ran their own hardware, this would be their own physical server racks running somewhere in your own office. With the advent of the cloud, anyone can just pay another company with their own dedicated hardware a fee to utilize their resources, today many companies go this route as it is flexible and generally cheaper.</p>
<p>Now you might be asking how does the cloud relate to browsers? The main reason I’ll provide here, is that this allowed many more companies to build out their website infrastructure, and look for people to pay to serve them. This is when the rise of “big tech” started to gain traction in the web infrastructure space, suddenly a lot of companies and consumers wanted to build “on the web”, which brings us back to the basic question. How do people get there?</p>
<p>As you might have already guessed, it's web browsers! Google specifically built out Chromium to help get customers to the web. For them, this meant getting ad money for Google searches and later cloud money through businesses running on their infrastructure, so indirectly funding a “better browser” was just another way to build out their other businesses, and investing into their browser in a way to make the web more enjoyable and capable fed into their other main money makers.</p>
<p>I primarily bring all this up as to the main reason why I’m focusing specifically on Chrome, as there’s a <strong>ton</strong> of options out there (see the bottom of this post for a list of ones I know about), but focusing on the current most popular browser seems like a good bet.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cool-but-wait-when-are-you-going-to-talk-about-how-to-use-the-browser-exactly">Cool but wait, when are you going to talk about how to use the browser exactly?<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#cool-but-wait-when-are-you-going-to-talk-about-how-to-use-the-browser-exactly" class="hash-link" aria-label="Direct link to Cool but wait, when are you going to talk about how to use the browser exactly?" title="Direct link to Cool but wait, when are you going to talk about how to use the browser exactly?" translate="no">​</a></h2>
<p>Okay okay! Now that we’ve gotten from the dawn of the web, to the cloud, with Google’s web/browsers, and some initial mentions of how to use web browsers is over. Let’s actually jump into using the darn thing. With this history we can also see how some companies make money based on your experience using the web, with the browser just being the initial interface.</p>
<p>Because that usability and raw experience is a core functionality and difference maker on many browsers, it’s also why Google funds Chromium’s development. Ultimately they win at the end of the day if you are using a web browser, even if it doesn’t have Google’s direct integration.</p>
<p>Okay let's get to the “learn how to use” portion finally!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tabs">Tabs<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#tabs" class="hash-link" aria-label="Direct link to Tabs" title="Direct link to Tabs" translate="no">​</a></h2>
<p>Tabs are the main productivity feature most users know, think about and use. Tabs are at their bare minimum a way to do multiple things in a single browser window. They are also easily the most abused feature. Many users end up with many tabs open to the point they can’t see anything besides the favicon. Most browsers allow users to move a tab out of their original window and into a new window, which can help with multiple monitors.</p>
<p>For many people, they are the “first option” and “last option” when using their browser extensively. It's possible even having this exact webpage open among 100+ other tabs! Or if you are on the other side of the spectrum, and don't use them  you should! It allows you to keep multiple webpages opened at the same time, and allow you to do multiple things at the same time.</p>
<p>I won't go into it more as I assume most users already know how to use this feature. So lets get into the more helpful/nuanced stuff.</p>
<p>Before we do though, here are some rapid fire keyboard shortcuts:</p>
<ul>
<li class=""><strong>New Tab</strong>: <code>ctrl + t</code> (Win/Linux) / <code>cmd + t</code> (Mac)</li>
<li class=""><strong>Close Tab</strong>: <code>ctrl + w</code> (Win/Linux) / <code>cmd + w</code> (Mac)</li>
<li class=""><strong>Reopen Closed Tab</strong>: <code>ctrl + shift + t</code> (Win/Linux) / <code>cmd + shift + t</code> (Mac)</li>
<li class=""><strong>Switch Tabs</strong>: <code>ctrl + tab</code> (next) or <code>ctrl + shift + tab</code> (previous)</li>
<li class=""><strong>Jump to URL bar</strong>: <code>ctrl + l</code> (Win/Linux) / <code>cmd + l</code> (Mac)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="pinning">Pinning<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#pinning" class="hash-link" aria-label="Direct link to Pinning" title="Direct link to Pinning" translate="no">​</a></h3>
<p>In Chrome and many other browsers, pinning is a feature where if you right-click or two-finger click on a Mac, a tab you can select “pin” that tab. This pushes the tab all the way to the left of the tab and condenses it down to just its favicon.</p>
<p>This feature allows you to keep tabs in a specific order, and more accessible as they are essentially in their own group. I use these for a few sites I always keep open no matter what. Critically using ctrl + number-key (or cmd + number-key on Mac) allows you to jump to your tabs, pinned or not. But having the same tabs setup allows easy access to the same sites every time via these keyboard shortcuts.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="split-tab">Split tab<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#split-tab" class="hash-link" aria-label="Direct link to Split tab" title="Direct link to Split tab" translate="no">​</a></h3>
<p>Split tab is a new feature available in Google Chrome, which allows you to essentially render a side by side view “within the same tab”. This can be helpful if you don't want to manage multiple Chrome windows while also being able to work in multiple tabs that you see at the same time side by side.</p>
<p>As before you can right-click or two finger click a tab to “add tab to new split view”, or you can select multiple tabs holding down <code>ctrl</code> (<code>cmd</code> on Mac), select your two tabs, then “add tab to new split view” and this should connect the tabs to a new split view.</p>
<p>This feature in my opinion is useful, but somewhat awkward, as the tabs share the URL bar so knowing which one you are actually on can get a little confusing at times, as the usability distinction between which tab is under focus and which isn’t isn’t clearly defined a majority of the time.</p>
<p>That said, let's continue as tabs are great, but just being able to pin or split them doesn’t actually help a majority of users who have 100+ tabs open and no idea of what's in them!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="bookmark-organization-and-the-reading-list">Bookmark organization, and the "reading list"<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#bookmark-organization-and-the-reading-list" class="hash-link" aria-label="Direct link to Bookmark organization, and the &quot;reading list&quot;" title="Direct link to Bookmark organization, and the &quot;reading list&quot;" translate="no">​</a></h2>
<p>Bookmarks are old browser features that are underutilized. They are very powerful, but I think they are not as visible as tabs, so most users don’t rely on them. They cover one of the main use cases most people have for opening multiple tabs, which is “not losing information”.</p>
<p>Bookmarks are like what their name intends, a way to save places on the internet to go back to them later. Explaining that isn’t what this section will be about, instead I’ll point out a few reasons why you’d want to save your huge list of tabs as bookmarks instead and save your poor web browser from keeping them open continually.</p>
<p>Go into your tab and click on the “star” icon in your URL bar, or press <code>ctrl + d</code> (Windows/Linux) or <code>cmd + d</code> (Mac). This will bookmark your tab. However that isn’t how to use bookmarks, instead organize your bookmarks into folders and utilize those folders as a way to find what you need later. If you leverage this feature enough, and combine it with other features such as “bookmark search” you can build your own little knowledge base that is searchable and organized.</p>
<p>To manage them all at once, you can open the Bookmark Manager with <code>ctrl + shift + o</code> (Windows/Linux) or <code>cmd + option + b</code> (Mac).</p>
<p>But it all starts with saving your bookmarks, naming them sensibly and taking time to organize them in some sensible structure. It's similar to files in your filesystem, doing some spring cleaning every now and then can go a long way.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="bookmark-search">Bookmark search<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#bookmark-search" class="hash-link" aria-label="Direct link to Bookmark search" title="Direct link to Bookmark search" translate="no">​</a></h3>
<p>Google Chrome, and many other browsers, allow you to easily search your bookmarks. In Chrome you can just type <code>@bookmarks</code> then hit space and search for what you want, and you will search against all the bookmarks. You can then select individual bookmarks or just hit enter and go into Chrome’s bookmark manager, which is available at <code>chrome://bookmarks</code> (other internal pages will be gone over later)</p>
<p>This search feature is available in that internal page, and the bookmarks sidebar.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="bookmarks-bar-and-bookmark-sidebar">Bookmarks bar and bookmark sidebar<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#bookmarks-bar-and-bookmark-sidebar" class="hash-link" aria-label="Direct link to Bookmarks bar and bookmark sidebar" title="Direct link to Bookmarks bar and bookmark sidebar" translate="no">​</a></h3>
<p>You can also use the bookmarks bar or sidebar to see and organize your top-level bookmarks that you always want quick access to, or see a list of searchable and filterable bookmarks alongside whatever you are working on. A quick way to toggle the bookmarks bar is <code>ctrl + shift + b</code> (Windows/Linux) or <code>cmd + shift + b</code> (Mac). This can be used along with the search and folders to effectively have a “file system” of bookmarks on the side of your browser. But as I said earlier, this requires your own effort to maintain and work to build your own setup.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tab-groups">Tab groups<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#tab-groups" class="hash-link" aria-label="Direct link to Tab groups" title="Direct link to Tab groups" translate="no">​</a></h2>
<p>Tab groups are one of the “newer” features that has come around in the last few years that adds a level of organization to tabs more directly than saving things into a bookmarks folder. Tab groups allow you to put tabs into a colored “group”. In Chrome this can be done by right clicking on a given tab and clicking “add tab to group”.</p>
<p>This pattern allows you to “collapse” tabs and organize them all in your tab bar. Many browsers have a secondary “store” of these tabs so you can close the tab group and open them later. With Chrome this syncs across devices, so you can save your tab group on one machine and open/reference them easily in another.</p>
<p><strong>Tab Groups should be the first thing you try to utilize, as it builds on most users' common workflow of just having a lot of tabs open.</strong> They don’t solve the problem directly, you can still have a lot of tabs, but you get at least 1 level of organization/abstraction and the ability to collapse them.</p>
<p>Mixing tab groups and bookmarks you can easily turn bookmarks into tab groups and vice versa for a more “solid” way to save tab groups over time, while also giving you multiple levels of control and ability to search/manage groups and bookmarks.</p>
<p><strong>Pro-tip:</strong> Name your tab group with an emoji and when you collapse it, it turns into the width of a single tab! On windows this can be done by right clicking on a tab-group, then in the tab group name field, right click again and pick “Emoji” then search/pick a sensible emoji to represent your tab group.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tab-search">Tab Search<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#tab-search" class="hash-link" aria-label="Direct link to Tab Search" title="Direct link to Tab Search" translate="no">​</a></h2>
<p>Let's say you have read all of the above advice, learned some high level web browser information, but then still just spam tons of tabs. Well this is the one other feature you should use way more. <strong>It's searching tabs</strong>.</p>
<p>Chrome provides a “tab search” button near the top, or you can hit the keyboard shortcut for <code>ctrl + shift + a</code> (or <code>cmd + shift + a</code> on Mac). If you hit the button it will also show tabs from other devices if you have sync enabled. <strong>Or</strong> you can search in the URL bar by typing <code>@tabs</code> then hitting space.</p>
<p>As long as you know the name of your tab you want, you can use this to find it!<br>
<!-- -->Most other browsers have a variant of this feature, which again can be a huge help as long as you know the name of the tab you are searching for.</p>
<p><strong>Pro-tip</strong>: if you skipped the section of searching bookmarks, check that section out, it uses the same “url search” mechanic!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-new-ui-pattern-of-vertical-tabs">The new UI pattern of vertical tabs<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#the-new-ui-pattern-of-vertical-tabs" class="hash-link" aria-label="Direct link to The new UI pattern of vertical tabs" title="Direct link to The new UI pattern of vertical tabs" translate="no">​</a></h2>
<p>Vertical tabs are a newer feature that leverages the fact most people’s windows have gotten “wider” over the years. Because of that there’s more horizontal space than vertical space, so to make use of that you can move your tabs to the left side of the screen rather than the top.</p>
<p>This has one key side-effect, that combined with tab groups, allows you to see most of your tabs titles, and group them in a nested tree. You could use short names for tabs with horizontal tabs, but with vertical tabs you could name them more verbosely.</p>
<p>The same “tricks” apply here, allowing you to search tabs and groups but with the ability to see more of the title more easily.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="x-factor-features">X-factor features<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#x-factor-features" class="hash-link" aria-label="Direct link to X-factor features" title="Direct link to X-factor features" translate="no">​</a></h2>
<p>Below are some “x factor” features, features that you could never use, but if you do they could be game changers depending on what you are doing. So these are provided for those looking to “up their game” either way. Since these are largely situational, I’ll leave an extra note about why you’d want to use these.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="installing-web-pages-as-pwas-or-as-apps">Installing web pages as PWAs, or as "apps"<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#installing-web-pages-as-pwas-or-as-apps" class="hash-link" aria-label="Direct link to Installing web pages as PWAs, or as &quot;apps&quot;" title="Direct link to Installing web pages as PWAs, or as &quot;apps&quot;" translate="no">​</a></h3>
<p><strong>The why</strong><br>
<!-- -->Use PWAs, or “Progressive Web Apps”, if you want better integration into your desktop</p>
<p>PWAs is a browser feature that some websites support. There are websites that act more like mobile or desktop apps, and have extended features to fill that niche. The technology is several years old, but only some websites actually leverage it. Examples would be:</p>
<ul>
<li class="">Youtube</li>
<li class="">X/Twitter</li>
<li class="">Spotify</li>
</ul>
<p>You usually see this as an “install” icon in the URL bar on chrome. Once you install it, it will appear in your taskbar and is searchable like any desktop app. Critically this completely offloads the app from your browser, so it opens as its own desktop app. This also allows you to “right-click” on the app icon and immediately jump to specific actions within the app directly from the icon. This can help some true power users access common functionality quickly and easily.</p>
<p>This can be <strong>very</strong> helpful if you use some apps and want your operating system to manage their windows instead of your browser. If you want to remove them, you will uninstall them like any other app and go back toward using your browser to access the site/app.</p>
<p>For websites that <strong>do not</strong> offer PWA support, you can get a similar experience by installing the page as a “shortcut”, which in Chrome is available from “cast, save and share” then picking the “create shortcut” button. This will work similar to a PWA, in the sense your operating system will then be able to manage and find the webpage, but it won’t provide as many features as a PWA as it's just a shortcut.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="site-search-make-specific-site-searches-easily-accessible">Site search, make specific site searches easily accessible<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#site-search-make-specific-site-searches-easily-accessible" class="hash-link" aria-label="Direct link to Site search, make specific site searches easily accessible" title="Direct link to Site search, make specific site searches easily accessible" translate="no">​</a></h3>
<p>“Site search” is a way to isolate individual sites that have a “search” option in Google Chrome. This way you can enter in a prefix, for example `@github` then hit space, then search directly in GitHub without leaving your URL bar!</p>
<p>Continuing the same example, for GitHub, you can search in GitHub via its search bar. Once you enter a query and hit search, you can see how the query is passed in so the url looks something like this: <a href="https://github.com/search?q=bradtaniguchi" target="_blank" rel="noopener noreferrer" class="">https://github.com/search?q=bradtaniguchi</a>.  The <code>q</code> query parameter is what you need to remember, and utilize in the next step.</p>
<p>Next go into your browser settings and go to “search engine”, then click on “Manage search engines and site search”. On this page you can add a site search option, name it “GitHub” or something similar for its prefix. Then provide the following as the value: <code>https://github.com/search?q=%s</code>. Now you can use your prefix and search GitHub much faster!</p>
<p>Expand this for any site you like to use, and you can jump through to find stuff on that particular site more or less from anywhere.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="bookmarks-as-links-is-only-the-beginning-code-your-own-button">Bookmarks as links is only the beginning, code your own "button"<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#bookmarks-as-links-is-only-the-beginning-code-your-own-button" class="hash-link" aria-label="Direct link to Bookmarks as links is only the beginning, code your own &quot;button&quot;" title="Direct link to Bookmarks as links is only the beginning, code your own &quot;button&quot;" translate="no">​</a></h3>
<p>I already went over bookmarks, but this section is on a very specific (and coder oriented) use case where  you can save JavaScript as a bookmark, then upon clicking the bookmark, it executes the code onto the current page!</p>
<p>This can be useful if you have a small snippet you like to use, or want to literally “save” a script to execute to “hack” a given page at any given time. Of course this isn’t real hacking, as you are only executing front-end JavaScript code. There are also other ways to do this more elegantly, such as from the dev tools, or having extensions which are designed to inject/run arbitrary JS as needed. But this is a neat little feature that could be useful and played around with.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="performance-and-memory-saver">Performance and Memory Saver<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#performance-and-memory-saver" class="hash-link" aria-label="Direct link to Performance and Memory Saver" title="Direct link to Performance and Memory Saver" translate="no">​</a></h3>
<p>Lastly, let's say you don’t like to use tab groups or bookmarks and you still keep hundreds of tabs open. Changing your browser’s performance settings can help keep things running smooth, or at least reclaim some memory for tabs you don’t go back to. This does have the side effect of making going back to idle tabs mean they refresh (which you might not want to happen) but concessions must be made if you want to free up some memory.</p>
<p>To utilize Chrome memory saver, go to the “three dot menu”, then to settings. Then performance, then select the type of performance you want to leverage.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-about-extensions">What about extensions?<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#what-about-extensions" class="hash-link" aria-label="Direct link to What about extensions?" title="Direct link to What about extensions?" translate="no">​</a></h2>
<p>I purposefully skipped over and ignored browser extensions, or even other browsers. The main reason for this is because there’s <strong>a lot</strong> out there that could be useful, and I can’t go over all of them, nor could I do it with any justice as I don’t actually use any productivity extensions that change the behavior of the browser. I use what it gives, with the single exception of turning on some flags here and there.</p>
<p>For example, vertical tabs aren’t public yet, but are available behind a flag in Chrome Beta. I usually use Chrome Beta anyways, so I flipped the flag and have been working with vertical tabs for a while to see how it is. It takes some getting used to, but so far I like it.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://bradtaniguchi.dev/blog/02-27-power-user-browser-features#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<p>Hopefully some of the above is helpful, and insightful. I might write another post on how to utilize browsers, maybe a more “demo oriented” one, but this post is already one of the longest I’ve written, and I plan to write. I wanted to give it my best!</p>
<p>One of the next things I’ll be working on is allowing for some way to provide feedback to these posts, without opening myself up to spam. But this is for another day, and something I’ve been working on behind the scenes.</p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
        <category label="Web" term="Web"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How I keep up with latest trends]]></title>
        <id>https://bradtaniguchi.dev/blog/reading-habits</id>
        <link href="https://bradtaniguchi.dev/blog/reading-habits"/>
        <updated>2026-02-26T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[My approach to staying informed in the fast-paced world of software development without the exhaustion of social media.]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">7<!-- --> min read</span></span></div></div><p><img decoding="async" loading="lazy" alt="keyboard with monitors showing code" src="https://bradtaniguchi.dev/assets/images/fotis-fotopoulos-unsplash-6bb70f0c99724c4c0b24ecdbea6d652c.jpg" width="6000" height="4000" class="img_ev3q"></p>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Photo by <a href="https://unsplash.com/@ffstop?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Fotis Fotopoulos</a> on <a href="https://unsplash.com/photos/black-computer-keyboard-DuHKoV44prg?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-question">The Question<a href="https://bradtaniguchi.dev/blog/reading-habits#the-question" class="hash-link" aria-label="Direct link to The Question" title="Direct link to The Question" translate="no">​</a></h2>
<p>It's sometimes exhausting to be a developer.</p>
<p>I knew this going in and developed a few habits to keep me in the loop. This became more important once the rate of what I needed to know increased. Where today things are almost exhausting to keep up with.</p>
<p>I've been asked by a few people over the years the exact question of "How do you keep up with latest trends?". It's a simple question, but one where I try to give a nuanced, and "different" answer. Most people think of looking to social media, such as reddit, linkedin, instagram, and youtube. But I don't actually use these to keep track of the latest trends.</p>
<p>I use something more old school, I use RSS feeds and <a href="https://www.inoreader.com/" target="_blank" rel="noopener noreferrer" class="">inoreader</a>, which is an RSS feed aggregator.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="so-whats-an-rss-feed">So what's an RSS feed?<a href="https://bradtaniguchi.dev/blog/reading-habits#so-whats-an-rss-feed" class="hash-link" aria-label="Direct link to So what's an RSS feed?" title="Direct link to So what's an RSS feed?" translate="no">​</a></h2>
<p>Here's the copy paste description from <a href="https://en.wikipedia.org/wiki/RSS" target="_blank" rel="noopener noreferrer" class="">Wikipedia</a></p>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>RSS (RDF Site Summary or Really Simple Syndication) is a web feed that allows users and applications to access updates to websites in a standardized, computer-readable format. Subscribing to RSS feeds can allow a user to keep track of many different websites in a single news aggregator, which constantly monitors sites for new content, removing the need for the user to manually check them.</p></div></div>
<p>So essentially, an RSS feed is a way for you to subscribe to a source of content using a tool such as inoreader, which will keep track of new content.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="my-workflow-philosophy">My Workflow Philosophy<a href="https://bradtaniguchi.dev/blog/reading-habits#my-workflow-philosophy" class="hash-link" aria-label="Direct link to My Workflow Philosophy" title="Direct link to My Workflow Philosophy" translate="no">​</a></h2>
<p>In terms of workflow I keep to my guns and do not actually change my workflow very quickly or dramatically. I try to make the most out of the tools I'm currently using until something breaks, rather than trying to chase drastic changes. Because of this, I'm aware of trends but might not actually leverage them until I see more general traction and learn more about it. For example, leveraging AI has been something I've been using consistently but never full on the "hype train". This is yet another reason why I started this blog, it's to help me consolidate and explain these things in a structured format.</p>
<p>It's true that we live in the "information age", with more information than ever being able to be consumed any multitude of ways. Just like dieting, and watching what you eat, I believe in curating and managing what information I consume. Not only for keeping up with technology trends, but also to stay aware of the world, while avoiding the "traps" of attention that can be social media based sites and services.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="sources-and-tools-i-use">Sources and Tools I Use<a href="https://bradtaniguchi.dev/blog/reading-habits#sources-and-tools-i-use" class="hash-link" aria-label="Direct link to Sources and Tools I Use" title="Direct link to Sources and Tools I Use" translate="no">​</a></h2>
<ul>
<li class=""><strong>inoreader</strong> - My primary RSS feed reader</li>
<li class=""><strong>YouTube</strong> - I do actually use youtube, but only as a rough guide. I rarely watch videos that are over 10 minutes, largely to get an idea before jumping in myself. I also only watch a handful of core channels, and avoid any number of common sources</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="types-of-rss-feeds">Types of RSS Feeds<a href="https://bradtaniguchi.dev/blog/reading-habits#types-of-rss-feeds" class="hash-link" aria-label="Direct link to Types of RSS Feeds" title="Direct link to Types of RSS Feeds" translate="no">​</a></h2>
<p>Types of RSS feeds I look to leverage:</p>
<ul>
<li class="">Blog sites for known technology, such as the blogs for specific technologies such as React, or tooling like vite. These tools post news updates, which you can directly follow</li>
<li class="">Individual publication (is it weird I follow myself lol?)</li>
<li class="">I largely ignore medium or other social sites as "too spammy", you could follow medium authors or topics, but again it spits out too many articles.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-skimming-strategy">The Skimming Strategy<a href="https://bradtaniguchi.dev/blog/reading-habits#the-skimming-strategy" class="hash-link" aria-label="Direct link to The Skimming Strategy" title="Direct link to The Skimming Strategy" translate="no">​</a></h2>
<p>I skim most sections and rarely read individual articles, this gives a high level idea of what people are talking about, <strong>without</strong> actually participating in social media. There is no doom scrolling unless I deliberately set it up that way. I do miss out on a huge number of things, but by sheer consistency I will notice articles and topics that pop up more often than others. I also have a folder that I read every article in, so I cannot miss anything for these "favorites".</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="read-later-and-inbox-zero">Read later, and inbox zero<a href="https://bradtaniguchi.dev/blog/reading-habits#read-later-and-inbox-zero" class="hash-link" aria-label="Direct link to Read later, and inbox zero" title="Direct link to Read later, and inbox zero" translate="no">​</a></h2>
<p>I have the inoreader extension for my browser, which allows me to add whatever site I find interesting to my "read later" list. This way regardless of where the content is I can "add it" into my inoreader feed as a "read later item". I'm a stickler for inbox zero, so I continually go through my read later list when I get a chance. I never actually get to inbox zero, but I do keep it manageable.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="youtube">YouTube<a href="https://bradtaniguchi.dev/blog/reading-habits#youtube" class="hash-link" aria-label="Direct link to YouTube" title="Direct link to YouTube" translate="no">​</a></h2>
<p>I watch YouTube mostly for entertainment, but in regards to development and learning I look out for either shorts on a given topic, or short-form content videos going over a given technology. These videos are more for me to understand what a given technology could provide to me, rather than for me to learn all aspects of it. I don't really watch long format content as it's too hard to pay attention, and I can just as easily read the docs as my own pace as needed. This is also where individual doc pages can be saved to my inoreader and be read when I get a chance.</p>
<p>The current channels I recommend for short format content:</p>
<ul>
<li class="">web dev simplified - main channel to learn about web dev stuff, very minimal fluff</li>
<li class="">devopstoolbox - where I got "inspired" to improve my terminal setup</li>
<li class="">fireship - especially their "in 100 seconds" series</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="example-rss-feeds">Example RSS feeds<a href="https://bradtaniguchi.dev/blog/reading-habits#example-rss-feeds" class="hash-link" aria-label="Direct link to Example RSS feeds" title="Direct link to Example RSS feeds" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="my inoreader" src="https://bradtaniguchi.dev/assets/images/inoreader-example-819640d752b3a5e7b22d6860122d8303.png" width="2255" height="1126" class="img_ev3q"></p>
<p>Here's some example RSS feeds/sites I follow for web development:</p>
<ul>
<li class=""><a href="https://blog.github.com/" target="_blank" rel="noopener noreferrer" class="">https://blog.github.com/</a> - GitHub's blog, where they post about product updates. I use a lot of github oriented products for my personal development workflow, so I like staying in the loop</li>
<li class=""><a href="https://techcrunch.com/" target="_blank" rel="noopener noreferrer" class="">https://techcrunch.com/</a> - tech blog, great for high level topics. One of the "skimmers" I glance at along with other similar sites to get an idea of common trends at a glance</li>
<li class=""><a href="https://www.freecodecamp.org/news/" target="_blank" rel="noopener noreferrer" class="">https://www.freecodecamp.org/news/</a> - tech blog, great for in-depth guides. I find myself saving an article here or there to read up in depth later. Otherwise another site I skim through a majority of the time to get idea of trends.</li>
<li class=""><a href="https://www.web3isgoinggreat.com/" target="_blank" rel="noopener noreferrer" class="">https://www.web3isgoinggreat.com/</a> - tech fail blog, I have a few "fun" sites I track, this is one that I paid more attention to with the whole "web3" trend. Stuff still comes up, and web3 is "still going great" (You will not hear me talk about web3 in this blog basically ever again)</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="wrapping-up">Wrapping up<a href="https://bradtaniguchi.dev/blog/reading-habits#wrapping-up" class="hash-link" aria-label="Direct link to Wrapping up" title="Direct link to Wrapping up" translate="no">​</a></h2>
<p>Like most things, I think getting the most out of what you have is more important than trying to change more ways to do the same things. (hopefully that makes sense), I really only use 2 tools, but those two tools cover all gaps and bypass all the junk out there. I could be missing out and slow to adapt to trends, but I won't be unaware of them, and if they are that important and impactful I will eventually follow up on them as I see more of them through my RSS feed.</p>
<p>So yea, I like reading and keeping up with things my own way. I think I can write a bit more about this topic, specifically how I use inoreader, and a few other sources to fill my free time with something more positive rather than doom scrolling, but this broader topic will be for another time.</p>
<p>Until next time, keep learning, keep building, and keep asking questions!</p>
<p><strong>PS</strong> Bonus points if you follow this site yourself! See the footer below for the RSS and ATOM feed. Most modern RSS feed aggregators can handle either.</p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
        <category label="Reading" term="Reading"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[New Age Tools]]></title>
        <id>https://bradtaniguchi.dev/blog/new-age-tools</id>
        <link href="https://bradtaniguchi.dev/blog/new-age-tools"/>
        <updated>2026-02-17T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[developer tooling that goes beyond the basics, and what I've used for over a decade.]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">9<!-- --> min read</span></span></div></div><p>Developer tooling that goes beyond the basics, and what I've used for over a decade. The tools I use aren't new, or super fancy or anything explicitly tied with AI. But I've found them very effective and use them on all my machines. Recently, I started re-building my <code>dotfiles</code> repo, and it made me realize that going over my current "terminal workflow" might be an interesting read, as its very unique to me. So lets hop in and see what tools I've been using to help me stay productive <del>and look cool in the terminal hehe</del>, but first lets jump back to my college days.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="origin-story">Origin story<a href="https://bradtaniguchi.dev/blog/new-age-tools#origin-story" class="hash-link" aria-label="Direct link to Origin story" title="Direct link to Origin story" translate="no">​</a></h2>
<p>Back in 2015, I was a few years into college working on my computer science degree. I was through a few classes and wanted to get more "involved" with development and technology in general. One thing I thought would help me accomplish this was to move completely to linux. The had another benefit in that the laptop I was using at the time was aging, and feeling pretty slow day to day. So the hope was wiping out windows and installing Linux would give it a little more legs.</p>
<p>So I grabbed my old 15 inch "Samsung MK1 brick", and a spare USB and went through some tutorials for installing Ubuntu and didn't look back. After a weekend of troubleshooting, I was completely on Linux. I didn't realize at the time, but this experience would indirectly lead me to all sorts of things I'd need to learn and use in the future, simply by forcing myself to pick it up due to the switch. It was "basic" stuff like learning how to use the terminal for basic day to day tasks like moving around the file system and writing and editing files.</p>
<p>After essentially forcing myself to learn linux or "drown", I shopped around different distros, different terminals and different tools. All to find stuff that not only looked cool, at least to me, but to also learn what was out there. I spent a good year using <a href="https://gnome-terminator.org/" target="_blank" rel="noopener noreferrer" class="">terminator</a> and transparent terminals to take notes and review the slides on my laptop at one time. Eventually I was able to upgrade away from my "Samsung brick", and again made it a goal to use linux full time with my newer laptop. I stuck with Linux for a number of years until wanting to simplify my life and moved to Windows 10/11 with WSL2. I've kept linux around in dual boots but found I never entered them enough to justify it. That said, with WSL being mature enough to work more or less full time in it, while still having access to a linux environment, its a nice "best of both worlds".</p>
<p>Around the time I got this newer laptop, I ran into some of the "core tools" I started to pickup that I still use today.</p>
<p>Those tools are:</p>
<ul>
<li class="">Vim</li>
<li class="">Tmux</li>
</ul>
<p>To be completely honest, I felt like a hacker using a multitude of terminals with all these fancy gizmos. I even used it heavily during my on C programming class, and felt not only like a real coder, but a "cool" one lol. It was useful to get used to these sorts of tools, even for basic usages like what I was doing, but I wasn't actually doing much more than just leveraging the terminal for tasks I could use a GUI text editor for. I like to compare the level of commitment to that of using something like notepad—useful but nothing fancy.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="inbetween-years">Inbetween years<a href="https://bradtaniguchi.dev/blog/new-age-tools#inbetween-years" class="hash-link" aria-label="Direct link to Inbetween years" title="Direct link to Inbetween years" translate="no">​</a></h2>
<p>I eventually moved on from these tools for anything but basic usage. My Tmux and Vim setups were never too fancy or tricked out. There was a point where I had tmuxline+airline configured, but one problem I always ran into was integrating it with my different computers I'd use. Even in college I had 3 different laptops I'd use ("the brick", the main laptop, and in my last year I purposefully swapped to a chromebook), this didn't include any of the random raspberry-pi I'd buy to play around with as a basic server/terminal, or my main desktop computers, which I didn't do much development on, but sometimes did. The end result was either trying to share a common config between all of them through a <code>dotfiles</code> repo, and then dealing with it exploding on my newly minted raspberry-pi, or trying to configure each manually.</p>
<p>Because setting up and integrating these tools was too annoying between these different systems, I kept my Tmux and Vim setup pretty small, I never even made the jump to Neovim until a few years ago for a similar integration issue. So my config stayed more or less the same for about a decade (!)
I only used Tmux to run dev servers, or individual tasks like git, and use Vim kind of like a notepad, only for basic edits like git commit messages. I was using Atom and later VSCode once I got into TypeScript development, and I never really looked back. VSCode did all the "actual work", up until I started gaining access to "agentic IDE" tools such as cursor (which is honestly just VSCode with some other features).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="jumping-to-today">Jumping to today<a href="https://bradtaniguchi.dev/blog/new-age-tools#jumping-to-today" class="hash-link" aria-label="Direct link to Jumping to today" title="Direct link to Jumping to today" translate="no">​</a></h2>
<p>So this brings us to today. I <strong>finally</strong> have invested some time into my setup, and like most things, this has been largely possible only because of AI helping me grind down on some common issues, and saving the "brain juice" for the direction, rather than the syntax. That said I had a <strong>heck</strong> of a time with the current setup, even with it being only a week or so old. That said, I enjoy it thus far. So here it is:</p>
<ul>
<li class="">Tmux - still going strong!</li>
<li class="">Helix - replaced Neovim, more user friendly, easier to tweak and jump between files, still using as a reviewer</li>
<li class="">bash - I tried out zsh and fish shortly but I never could justify it enough</li>
</ul>
<p>A few other things I've integrated into the "terminal tooling flow" I picked up over the years are:</p>
<ul>
<li class="">github-cli - work with git without leaving the terminal</li>
<li class="">copilot-cli - leverage AI/copilot without leaving the terminal</li>
<li class="">starship - cross platform prompt, useful out of the box without me tweaking anything</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="tmux-today">tmux today<a href="https://bradtaniguchi.dev/blog/new-age-tools#tmux-today" class="hash-link" aria-label="Direct link to tmux today" title="Direct link to tmux today" translate="no">​</a></h3>
<p>Tmux does the same job as it did years ago, with it being one area that I've invested the most into as of late. The job is the same, but how I went about it is completely different. Namely, I removed a <strong>bunch</strong> of stuff I had setup originally to focus only 2 things:</p>
<ul>
<li class="">window management</li>
<li class="">session management</li>
</ul>
<p>I have a few other things I'm currently looking into tweaking/improving, but I largely removed stuff like:</p>
<ul>
<li class="">hostname/user name (actually going to make a comeback!)</li>
<li class="">git information</li>
<li class="">computer information - I got fancy with battery level/CPU usage/time/etc</li>
<li class="">random scripts for statuses - these broke when I jumped machines, and never bothered to fix them lol</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="helix">Helix<a href="https://bradtaniguchi.dev/blog/new-age-tools#helix" class="hash-link" aria-label="Direct link to Helix" title="Direct link to Helix" translate="no">​</a></h3>
<p>I've used Vim for years, but never got pasts the basics simply because I could never devote enough time or effort to learn it and keep track of it. There was multiple times and attempts for learning and trying to go from "notepad" levels of usage to more and I just couldn't get over the hump.</p>
<p>I was suggested Helix by someone, as I was searching for newer age alternatives, and Helix fits the bill. It follows similar philosophy as Vim in usage, but the actual user experience is miles ahead. With the main "features" being forefront, such as file searching and finding, all with helpful popups showing what other options there are.</p>
<p>There's also pretty sensible defaults out of the box and a simple way to configure its status line. I mixed in some copilot magic to make the them almost match my new simplified Tmux config, and have been off to the races.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="sticking-with-bash">Sticking with bash<a href="https://bradtaniguchi.dev/blog/new-age-tools#sticking-with-bash" class="hash-link" aria-label="Direct link to Sticking with bash" title="Direct link to Sticking with bash" translate="no">​</a></h3>
<p>I tried out zsh, and even tried to use fish a few times over the years but I just don't see much benefit. I'm at a point where I want simplicity over any specific features.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="ai-is-the-reason">AI is the reason<a href="https://bradtaniguchi.dev/blog/new-age-tools#ai-is-the-reason" class="hash-link" aria-label="Direct link to AI is the reason" title="Direct link to AI is the reason" translate="no">​</a></h3>
<p>Like most posts I write about now, this all circles back to AI. On my personal machine I largely use just copilot-cli due to its integration with VSCode and github. With Helix managing the "review" and all this occurring in different Tmux windows/sessions, this setup runs great, while staying out of the way. That said if I need to code a lot myself, I still keep VSCode nearby.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="but-vscode-still-is-around">But VSCode still is around<a href="https://bradtaniguchi.dev/blog/new-age-tools#but-vscode-still-is-around" class="hash-link" aria-label="Direct link to But VSCode still is around" title="Direct link to But VSCode still is around" translate="no">​</a></h3>
<p>I still use VSCode for a majority of my personal work, and haven't fully moved away from it even with all these terminal tools. I go for it every now and then, but if I have a lot of work lined up, I stick with what I'm used to. That said, all the work I have for this blog is now being written in my new setup!</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-tooling">The tooling<a href="https://bradtaniguchi.dev/blog/new-age-tools#the-tooling" class="hash-link" aria-label="Direct link to The tooling" title="Direct link to The tooling" translate="no">​</a></h3>
<p>The last thing I changed was I built my "installer" in native typescript+nodejs so I can review it easily. This installer is a CLI app that allows me to do stuff like backup, install, verify, and even see the difference between whats on the current system and what I have in the dotfiles repo. Its always a WIP like most of my projects, but thus far has been working great!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="screenshot-of-the-setup-and-simple-breakdown">Screenshot of the setup and simple breakdown<a href="https://bradtaniguchi.dev/blog/new-age-tools#screenshot-of-the-setup-and-simple-breakdown" class="hash-link" aria-label="Direct link to Screenshot of the setup and simple breakdown" title="Direct link to Screenshot of the setup and simple breakdown" translate="no">​</a></h2>
<p>Enough talk, here's how the setup looks right now.</p>
<p><img decoding="async" loading="lazy" alt="tmux and helix setup" src="https://bradtaniguchi.dev/assets/images/tmux-hx-setup-cd9ff15f317993a56a785cebc4b5c0fd.png" width="2246" height="1424" class="img_ev3q"></p>
<p>The tmux session list is on the left, with the current system name separate by a simple <code>|</code> character, with the current session denoted by <code>[]</code>.</p>
<p>On the far right side (I don't use the right section so the "middle" gets pushed to the far right) are the windows.</p>
<p>This system allows me to have 2 levels of "tasks", and multiple windows each with their own panes as needed.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-dotfiles-2-repo">The dotfiles-2 repo<a href="https://bradtaniguchi.dev/blog/new-age-tools#the-dotfiles-2-repo" class="hash-link" aria-label="Direct link to The dotfiles-2 repo" title="Direct link to The dotfiles-2 repo" translate="no">​</a></h2>
<p>Here's the repo if you want to take a look! <a href="https://github.com/bradtaniguchi/dotfiles-2" target="_blank" rel="noopener noreferrer" class="">repo</a></p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[How AI is used in this blog?]]></title>
        <id>https://bradtaniguchi.dev/blog/how-ai-is-used-in-this-blog</id>
        <link href="https://bradtaniguchi.dev/blog/how-ai-is-used-in-this-blog"/>
        <updated>2026-01-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[One reason why I started this blog is to create a space that is intentional about its use of AI, with a clear goal to not actually leverage it for content generation. That said, this blog does use AI for a number of other things, which I'll go over in this post.]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">6<!-- --> min read</span></span></div></div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="introduction">Introduction<a href="https://bradtaniguchi.dev/blog/how-ai-is-used-in-this-blog#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction" translate="no">​</a></h2>
<p>One reason why I started this blog is to create a space that is intentional about its use of AI, with a clear goal to not actually leverage it for content generation. That said, this blog does use AI for a number of other things, which I'll go over in this post.</p>
<p>This blog utilizes a few of the AI standards I mentioned <a class="" href="https://bradtaniguchi.dev/blog/agentic-ai-standards">back here</a>, along with some specific tools and workflows I use to help maintain it without spending too much of my limited personal time. These standards help solidify how I want to use AI in its limited capacity.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="repetitive-tasks">Repetitive tasks<a href="https://bradtaniguchi.dev/blog/how-ai-is-used-in-this-blog#repetitive-tasks" class="hash-link" aria-label="Direct link to Repetitive tasks" title="Direct link to Repetitive tasks" translate="no">​</a></h3>
<p>Dull development tasks are actually pretty common, but also a subjective topic. If you ask one type of dev, "writing unit tests" could be considered dull, whereas others writing critical software would consider unit tests critical and not dull. There's even a "developer term" for all this dull work, it's called "boilerplate". A blog is not a boilerplate heavy use case in regards to code, especially this specific version of the blog where I more or less leverage a pre-existing tooling in the form of Docusaurus. However, building and maintaining this blog still ends up having some "duller" moments.</p>
<p>The best example I have is the utilization of an <a href="https://agentskills.io/home" target="_blank" rel="noopener noreferrer" class="">agent skill</a>, to help create new blog post boilerplate. Docusaurus blog posts utilize front-matter, where I follow a specific format for blog post titles, tags authors and dates. This is fairly easy to write myself, but having AI do it means saving a few seconds to kickstart a new blog. This of course isn't super impressive, but I did have a few instances in the past where creating a blog post incorrectly ended up causing some issues with the build, and ended up wasting a few more minutes of my time that could have been spent writing or fleshing out ideas.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fixing-and-expanding-tooling">Fixing and expanding tooling<a href="https://bradtaniguchi.dev/blog/how-ai-is-used-in-this-blog#fixing-and-expanding-tooling" class="hash-link" aria-label="Direct link to Fixing and expanding tooling" title="Direct link to Fixing and expanding tooling" translate="no">​</a></h3>
<p>Docusaurus comes out of the box with a number of useful defaults, but I've had to tweak and change a number of things as the use-case of a "blog only" site is a bit different than the default "docs and blogs" use case. Along with this, I had a few customizations I wanted to add and work on, such as the "recent posts" on the main page, is actually a Docusaurus plugin I had Copilot write based on the docs. The styling of this doc was also "vibe coded", as I didn't want to deal with playing with color theory, or tweaking values continually. Copilot did an OK job at this that created some accessibility issues that still somewhat exist. But this again saved me a ton of time I spent writing more posts than tweaking colors.</p>
<p>Copilot has also fixed a number of small bugs that would have only taken me a few minutes to complete.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="workflow-and-tools">Workflow and tools<a href="https://bradtaniguchi.dev/blog/how-ai-is-used-in-this-blog#workflow-and-tools" class="hash-link" aria-label="Direct link to Workflow and tools" title="Direct link to Workflow and tools" translate="no">​</a></h3>
<p>The main AI agent/tool I use is Copilot. The main reason for this is my use-case is not complex or fancy enough that I want more advanced options or fancy tooling. There is also one killer use-case for Copilot I haven't found an alternative for. The most obvious use case is simply booting up VSCode, opening the chat right sidebar and telling Copilot what I'd like it to complete. I use this pattern for creating new blogs, or fixing issues I know about and want to observe or guide myself.</p>
<p>The second more advanced case is assigning and writing github issues to Copilot on github. This works way better with a more detailed issue, along with keeping Copilot to focus only on small specific tasks. That said, I did have Copilot generate a number of core infrastructure, such as the deployment pipeline, adding in playwright to help test a build and test for accessibility issues. For example, this is the issue template I assigned to Copilot:</p>
<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#0f172a;--prism-background-color:#f1f5f9"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#0f172a;background-color:#f1f5f9"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#0f172a"><span class="token title important punctuation" style="color:#475569">##</span><span class="token title important"> Description</span><span class="token plain"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain">Playwright can be used for testing the build and look for accessibility issues using axe testing.</span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain">This can test the digital ocean PR deployment </span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token title important punctuation" style="color:#475569">##</span><span class="token title important"> Why</span><span class="token plain"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain">To verify accessibility and the actual website works and loads properly </span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token title important punctuation" style="color:#475569">##</span><span class="token title important"> Tasks (optional)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token list punctuation" style="color:#475569">-</span><span class="token plain"> [ ] research latest version of playwright and docs</span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token list punctuation" style="color:#475569">-</span><span class="token plain"> [ ] install the library using the documented method</span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token list punctuation" style="color:#475569">-</span><span class="token plain"> [ ] verify install against the example tests that should be installed automatically </span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token list punctuation" style="color:#475569">-</span><span class="token plain"> [ ] modify the installation to test the built site, verify the search bar exists and works, verify the blog post list, verify an article loads and tags redirect to the list of tags</span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token list punctuation" style="color:#475569">-</span><span class="token plain"> [ ] verify these test work in the PR build</span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token list punctuation" style="color:#475569">-</span><span class="token plain"> [ ] add axe accessibility testing to the playwright test and have a test for the homepage and a blog post</span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token list punctuation" style="color:#475569">-</span><span class="token plain"> [ ] re verify the PR build </span><br></span></code></pre></div></div>
<p>This resulted in a solid initial PR, of which the only feedback I had was to ask Copilot to consolidate the github action yaml files and reuse the same build step. But overall this worked and saved me easily a few hours.</p>
<p>The final "killer use-case", at least for me personally, is I can write issues, and assign Copilot, and review its work all from my mobile device. This, for me is a great way to get ideas going and something in motion without anything more than a solid description of the issue. I was able to solve a number of smaller bugs all without being home, simply because I had the ability to dictate and control Copilot through the mobile app.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="future-of-ai-tooling-in-this-blog">Future of AI tooling in this blog<a href="https://bradtaniguchi.dev/blog/how-ai-is-used-in-this-blog#future-of-ai-tooling-in-this-blog" class="hash-link" aria-label="Direct link to Future of AI tooling in this blog" title="Direct link to Future of AI tooling in this blog" translate="no">​</a></h3>
<p>Practically there isn't much in regards to utilizing AI specifically for this blog, its already setup to handle maintenance issues, and has done a solid job at solving issues I don't want to spend "brain juice" on myself, so using a more fancy option, or fancier features just probably won't happen here. That said, I always have other project ideas, vibe coded and otherwise. These sorts of projects are probably something I do my usual "start quick and lose enthusiasm, stop and let it gather dust". With AI I hope I can actually get some of these off the ground more. Still, I acknowledge the environmental impact of using AI, which I plan to write about more in the future.</p>
<p>Until next time, keep learning, keep building, and keep asking questions!</p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
        <category label="AI" term="AI"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Agentic AI standards]]></title>
        <id>https://bradtaniguchi.dev/blog/agentic-ai-standards</id>
        <link href="https://bradtaniguchi.dev/blog/agentic-ai-standards"/>
        <updated>2026-01-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[I like standards, you should too.]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">8<!-- --> min read</span></span></div></div><p>I like standards, you should too. Especially when it comes to AI, which is still somewhat a wild west. Having some standardization helps with transferable patterns regardless of what agentic AI tool you are using.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="introduction">Introduction<a href="https://bradtaniguchi.dev/blog/agentic-ai-standards#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction" translate="no">​</a></h2>
<p>First and foremost I want to define the term "agentic AI", as this post will be entirely targeted around what this term means, and how it's used. I'll also exclusively use the term "AI" to refer to LLM powered AI systems, at least in regards to those used by developers.</p>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Agentic AI are AI agents that can perform a task by themselves, autonomously.</p></div></div>
<p>Broadly, most AI agents developers use today are "agentic" with different levels of autonomy. Earlier versions of AI would provide suggestions, but aren't able to write code themselves without developer acceptance. However, today with tools such as <a href="https://cursor.com/home" target="_blank" rel="noopener noreferrer" class="">Cursor</a> and <a href="https://code.claude.com/docs/en/overview" target="_blank" rel="noopener noreferrer" class="">Claude Code</a>, developers can just write a prompt and these AI tools will go off and perform any number of writes/reads/tool-calls/etc. to accomplish the task.</p>
<p>With all these different agents, and ways to define and do things, some standards have come about that help developers define some guardrails and capabilities for these agents to leverage, without defining the same things over for each type of tool.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ai-standards">AI Standards<a href="https://bradtaniguchi.dev/blog/agentic-ai-standards#ai-standards" class="hash-link" aria-label="Direct link to AI Standards" title="Direct link to AI Standards" translate="no">​</a></h2>
<p>I'll go over 3 standards I know of, listed in order of how much they are currently supported by common industry standards to different degrees.</p>
<p>Broadly speaking a lot of tools that don't support these standards, already have some internal form of these standards, hence why these standards came about, there's a similar need for them.</p>
<ul>
<li class=""><a href="https://modelcontextprotocol.io/" target="_blank" rel="noopener noreferrer" class="">MCP (Model Context Protocol)</a> - "MCP (Model Context Protocol) is an open-source standard for connecting AI applications to external systems."</li>
<li class=""><a href="https://agents.md/" target="_blank" rel="noopener noreferrer" class="">AGENTS.md</a> - "A simple, open format for guiding coding agents. Think of AGENTS.md as a README for agents: a dedicated, predictable place to provide the context and instructions to help AI coding agents work on your project."</li>
<li class=""><a href="https://agentskills.io/" target="_blank" rel="noopener noreferrer" class="">Agent Skills</a> - "A simple, open format for giving agents new capabilities and expertise. Agent Skills are folders of instructions, scripts, and resources that agents can discover and use to do things more accurately and efficiently."</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="mcp-model-context-protocol">MCP (Model-Context-Protocol)<a href="https://bradtaniguchi.dev/blog/agentic-ai-standards#mcp-model-context-protocol" class="hash-link" aria-label="Direct link to MCP (Model-Context-Protocol)" title="Direct link to MCP (Model-Context-Protocol)" translate="no">​</a></h3>
<p>MCPs are a standard created by Anthropic back in 2024 (<a href="https://techcrunch.com/2024/11/25/anthropic-proposes-a-way-to-connect-data-to-ai-chatbots/" target="_blank" rel="noopener noreferrer" class="">ref</a>), for ways for AI to interact with tool calls. The term "MCP" is both the name of the standard, and the name of the "server" that provides the actual tool the AI agent can interact with. The standard defines how the tool provides information to the AI agent so the AI agent can decide when to use the tool and how to use it.</p>
<p>Examples would include:</p>
<ul>
<li class=""><a href="https://github.com/github/github-mcp-server" target="_blank" rel="noopener noreferrer" class="">GitHub's MCP server</a> - interact with GitHub's API via MCP/AI</li>
<li class=""><a href="https://github.com/microsoft/mcp/tree/main/servers/Azure.Mcp.Server" target="_blank" rel="noopener noreferrer" class="">Azure MCP server</a> - interact with Azure via MCP/AI</li>
<li class=""><a href="https://www.mongodb.com/docs/mcp-server/get-started/" target="_blank" rel="noopener noreferrer" class="">MongoDB MCP server</a> - interact with MongoDB via MCP/AI</li>
</ul>
<p>MCPs are largely how you currently change how an AI agent interacts with the world beyond the context already given. Day to day you could automate tasks such as creating issues, managing cloud resources, or querying databases all using the same "interface" of the agent.</p>
<p>However, MCPs come with a few core drawbacks:</p>
<ul>
<li class="">Due to how the standard works, the tool calls each populate the context, so the AI agent will <strong>always</strong> know about them, and knowing about them takes up the working context or memory that the AI agent can use. This could confuse the agent, or at a minimum increase costs due to more context being used even when not relevant.</li>
<li class="">MCPs largely interact with external APIs, which requires their own auth. The standard has no defined way to handle auth, so each MCP server implementation has to define its own workflow (often API keys) for handling auth.</li>
<li class="">Because of these API keys, there isn't a transferable standard or format for sharing MCP servers, each developer has to set up their own settings.</li>
<li class="">MCPs are largely a core attack vector, as like any tool call they can be used as a way to gather information, or perform prompt injections.</li>
<li class="">How and where you define your MCP servers is also <strong>not</strong> standardized, so each tool has its own configuration format. Largely using a JSON settings file, but again I don't believe this is standard, and only a convention.</li>
</ul>
<p>Even with these drawbacks, as a developer it's hard to get away from MCP tools, as even a few core ones can greatly increase productivity. But don't give it write access to the DB!</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="agentsmd">AGENTS.md<a href="https://bradtaniguchi.dev/blog/agentic-ai-standards#agentsmd" class="hash-link" aria-label="Direct link to AGENTS.md" title="Direct link to AGENTS.md" translate="no">​</a></h3>
<p>AGENTS.md is a standard created in 2025 by a "collection of industry efforts", so it's relatively new. But it solves a core/common problem almost all AI coding agents have required. Which is automatically provide some context to all prompts. As stated in the site description, AGENTS.md can be thought of as the README of a project, but for AI agents.</p>
<p>Practically this means defining a file named <code>AGENTS.md</code> in the root of your project, that contains specific sections that the AI agent can read to understand how to work on the project.</p>
<p>Here's a snippet example from the AGENTS.md file, of the blog/site you are reading right now:</p>
<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#0f172a;--prism-background-color:#f1f5f9"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#0f172a;background-color:#f1f5f9"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#0f172a"><span class="token comment" style="color:#6A9955">&lt;!-- ... --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain">File used for AI agents documentation. Each subsection provides examples and descriptions for different common tasks.</span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token title important punctuation" style="color:#475569">##</span><span class="token title important"> Architecture and Technologies used</span><span class="token plain"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain">Uses Docusaurus@3 for static site generation, React for UI components, Markdown and MDX for content and typescript for any React/node code. Runtime for development is node@24 and deployment is through GitHub pages.</span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token title important punctuation" style="color:#475569">##</span><span class="token title important"> Folder structure</span><span class="token plain"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token list punctuation" style="color:#475569">-</span><span class="token plain"> </span><span class="token code-snippet code keyword" style="color:#0c4a6e">`blog`</span><span class="token plain"> has </span><span class="token code-snippet code keyword" style="color:#0c4a6e">`md`</span><span class="token plain"> and </span><span class="token code-snippet code keyword" style="color:#0c4a6e">`mdx`</span><span class="token plain"> files for blog posts.</span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token list punctuation" style="color:#475569">-</span><span class="token plain"> </span><span class="token code-snippet code keyword" style="color:#0c4a6e">`src`</span><span class="token plain"> has all css, React and typescript code.</span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token list punctuation" style="color:#475569">-</span><span class="token plain"> </span><span class="token code-snippet code keyword" style="color:#0c4a6e">`static`</span><span class="token plain"> has all static assets deployed with the rest of the site.</span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token title important punctuation" style="color:#475569">##</span><span class="token title important"> Scripts</span><span class="token plain"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token list punctuation" style="color:#475569">-</span><span class="token plain"> </span><span class="token code-snippet code keyword" style="color:#0c4a6e">`npm run build`</span><span class="token plain"> - script to build the static website.</span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token comment" style="color:#6A9955">&lt;!-- ... --&gt;</span><br></span></code></pre></div></div>
<p>I've gotten some mixed signals about what you put into AGENTS.md and what you don't. Practically you shouldn't put too much, as it's always provided to the agent as context every time, so you want to only put in things that are always relevant.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="agent-skills">Agent Skills<a href="https://bradtaniguchi.dev/blog/agentic-ai-standards#agent-skills" class="hash-link" aria-label="Direct link to Agent Skills" title="Direct link to Agent Skills" translate="no">​</a></h3>
<p>Agent skills is a new standard, to the point most AI tools don't support it out of the box, but it's a standard that mixes aspects of both MCP and AGENTS.md together. They primarily allow you to define complex workflows and capabilities within markdown files, but are more lightweight compared to MCP calls.</p>
<p>A skill is defined within a folder structure at the root of a project:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#0f172a;--prism-background-color:#f1f5f9"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#0f172a;background-color:#f1f5f9"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#0f172a"><span class="token plain">.skills/&lt;skill-name&gt;/</span><br></span></code></pre></div></div>
<p>where the skill name of the folder will correspond with the "skill name" in a markdown file named <code>SKILL.md</code> within that folder, so if I had to define a skill named "code-review", I would create the following structure:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#0f172a;--prism-background-color:#f1f5f9"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#0f172a;background-color:#f1f5f9"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#0f172a"><span class="token plain">.skills/code-review/SKILL.md</span><br></span></code></pre></div></div>
<p>Within the <code>SKILL.md</code> file, you define a <a href="https://dev.to/dailydevtips1/what-exactly-is-frontmatter-123g" target="_blank" rel="noopener noreferrer" class="">frontmatter section</a> with the properties <code>name</code> and <code>description</code>, where the <code>name</code> corresponds to the folder name, and the <code>description</code> is a short description of what the skill does. Critically these two properties are the only properties the AI agent "sees" in its context at all times, hence the lightweight nature relative to an MCP server definition.</p>
<p>Within the actual SKILL file you can define whatever you want to give to the agent, when it determines to use the tool call.</p>
<p>So for example here's the skill I have defined within this project to help create boilerplate code for new blog posts:</p>
<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#0f172a;--prism-background-color:#f1f5f9"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#0f172a;background-color:#f1f5f9"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#0f172a"><span class="token front-matter-block punctuation" style="color:#475569">---</span><span class="token front-matter-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token front-matter-block"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">name</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:#475569">:</span><span class="token front-matter-block front-matter yaml language-yaml"> create</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:#475569">-</span><span class="token front-matter-block front-matter yaml language-yaml">or</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:#475569">-</span><span class="token front-matter-block front-matter yaml language-yaml">edit</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:#475569">-</span><span class="token front-matter-block front-matter yaml language-yaml">blog</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:#475569">-</span><span class="token front-matter-block front-matter yaml language-yaml">post</span><br></span><span class="token-line" style="color:#0f172a"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">description</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:#475569">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Use this skill when the user wants to create or update Docusaurus blog posts.</span><span class="token front-matter-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token front-matter-block"></span><span class="token front-matter-block punctuation" style="color:#475569">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token title important punctuation" style="color:#475569">#</span><span class="token title important"> Create New Blog Post Skill</span><span class="token plain"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain">This skill helps create boilerplate for new Docusaurus blog posts.</span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token title important punctuation" style="color:#475569">##</span><span class="token title important"> Quick Reference</span><span class="token plain"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token title important punctuation" style="color:#475569">###</span><span class="token title important"> File Naming Conventions</span><span class="token plain"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain">Blog posts in the </span><span class="token code-snippet code keyword" style="color:#0c4a6e">`blog/`</span><span class="token plain"> directory should follow the following naming conventions and folder structure:</span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token list punctuation" style="color:#475569">-</span><span class="token plain"> </span><span class="token code-snippet code keyword" style="color:#0c4a6e">`YYYY/MM-DD-title.md`</span><span class="token plain"> - Date-prefixed filename</span><br></span><span class="token-line" style="color:#0f172a"><span class="token plain"></span><span class="token comment" style="color:#6A9955">&lt;!-- ... --&gt;</span><br></span></code></pre></div></div>
<p>This standard is still new, so I haven't been able to leverage it. Most AI systems have a similar capability, or at a minimum you can just directly reference a file directly for extra context, as almost all AI agents have the ability to read a file and thus add its content to the context.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://bradtaniguchi.dev/blog/agentic-ai-standards#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<p>So in review, MCPs are the "tool call" standard, and AGENTS and Agent Skills are ways to provide more context either all the time or situational to agents.</p>
<p>Hopefully that sheds some light on AI standards, as I know them and use them.</p>
<p>This post is also the first one I've written specifically to help me review and gather references for things I know about but want to drill down a bit more. Day to day I use these tools multiple times, but writing it down and shipping it out on this blog is one of the main goals I have for this year. So hopefully this won't be the last post like this. As a taste of what I have in mind for the next part, I'll probably write another AI oriented post around how I use AI specifically for this blog itself. Again I don't use it for writing these posts (hopefully you can tell... for better or worse haha), but I do use it elsewhere.</p>
<p>Until next time, keep learning, keep growing and keep asking questions!</p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
        <category label="AI" term="AI"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Books read in 2025]]></title>
        <id>https://bradtaniguchi.dev/blog/books-read-in-2025</id>
        <link href="https://bradtaniguchi.dev/blog/books-read-in-2025"/>
        <updated>2026-01-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Welcome to the first official "reading" post of 2026!]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">7<!-- --> min read</span></span></div></div><p>Welcome to the first official "reading" post of 2026! As mentioned in my <a class="" href="https://bradtaniguchi.dev/blog/first-2026-post">previous post</a>, I wanted to split up development and reading topics into their own posts so I can focus on each a little more. This way I have something more targeted to write and ramble about rather than combining what is usually two somewhat disjointed topics. I of course do more than code and read, but in regards to actually writing about it and shoving it onto the internet, I think these two topics are good targets and worth writing about and hopefully worth reading!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="books-read-in-2025">Books read in 2025<a href="https://bradtaniguchi.dev/blog/books-read-in-2025#books-read-in-2025" class="hash-link" aria-label="Direct link to Books read in 2025" title="Direct link to Books read in 2025" translate="no">​</a></h2>
<p>Due to writing this months later I'll provide the raw list and a general summary of each. In the future I think I'll write a more dedicated focused summary as I read them. Mostly as a way to review it, and to <del>buff out how much content is in this blog so it doesn't look as dead</del> help pass along what I felt.</p>
<p>Here's the list of books I <del>grinded</del> read in 2025, roughly in order of reading (or at least based on my good reads list haha):</p>
<ul>
<li class="">"The Far Reaches Collection" (5 short sci-fi stories):<!-- -->
<ul>
<li class="">"Just Out of Jupiter's Reach" by Nnedi Okorafor</li>
<li class="">"The Long Game" by Ann Leckie</li>
<li class="">"How It Unfolds" by James S.A. Corey</li>
<li class="">"Void" by Veronica Roth</li>
<li class="">"Falling Bodies" by Rebecca Roanhorse</li>
</ul>
</li>
<li class="">"The Disturbance" by Brandon Q. Morris</li>
<li class="">"The Disturbance 2: The Answer" by Brandon Q. Morris</li>
<li class="">"The Disturbance 3: The Truth" by Brandon Q. Morris</li>
<li class="">"Kosa" by John Durgin</li>
<li class="">"Red Mars" by Kim Stanley Robinson</li>
<li class="">"The Circle" by Dave Eggers</li>
<li class="">"The Every" by Dave Eggers</li>
<li class="">"Artemis" by Andy Weir</li>
<li class="">"Forever Peace" by Joe Haldeman</li>
<li class="">"Forever Free" by Joe Haldeman</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-far-reaches-collection">The Far Reaches Collection<a href="https://bradtaniguchi.dev/blog/books-read-in-2025#the-far-reaches-collection" class="hash-link" aria-label="Direct link to The Far Reaches Collection" title="Direct link to The Far Reaches Collection" translate="no">​</a></h3>
<p>Being one of the first things I read last year, I have a tough time recollecting my exact review for this collection. Overall it was nice to dive into a book you can complete in essentially 1 sitting. Each had their own ideas and fleshed out stories all in a short snippet. I grew up reading Ray Bradbury short stories and compilations such as the "Illustrated man", so this was a nice way to go back to this format without diving, or grinding out longer books.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-disturbance-series">The Disturbance Series<a href="https://bradtaniguchi.dev/blog/books-read-in-2025#the-disturbance-series" class="hash-link" aria-label="Direct link to The Disturbance Series" title="Direct link to The Disturbance Series" translate="no">​</a></h3>
<p>I've found I go back to Brandon Q. Morris pretty often. His stories are on the "leaner" side of sci-fi, with some core science concepts, but the stories are largely character driven and carry a consistent pace. His books are also all reasonably priced, but the stories are almost always drawn out over multiple books. It is interesting to see some characters mention or pop up in other stories, but each series is largely self contained. The Disturbance trilogy was no different, but I did realize part way through I "skipped" a series earlier, which I'll have to possibly go back and read.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="kosa">Kosa<a href="https://bradtaniguchi.dev/blog/books-read-in-2025#kosa" class="hash-link" aria-label="Direct link to Kosa" title="Direct link to Kosa" translate="no">​</a></h3>
<p>I don't often read non-sci-fi, but Kosa was an exception mostly because I read the summary and it sounded like the Disney movie Tangled, so I bought it on a whim.</p>
<p>It was a fun and somewhat brutal read. If it was a movie it would be the sort of film that ropes you in with that same premise of sounding like something Disney would make, but then start the book off with some brutal rated R violence.</p>
<p>It was a pallette cleanser from all the usual sci-fi I usually read, but of course after reading this one I went right back to sci-fi, with a modern day classic.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="red-mars">Red Mars<a href="https://bradtaniguchi.dev/blog/books-read-in-2025#red-mars" class="hash-link" aria-label="Direct link to Red Mars" title="Direct link to Red Mars" translate="no">​</a></h3>
<p>I've heard about the Red Mars trilogy for years, but never got around to reading it as its one of the newer sci-fi books that was famous enough I've kept it on my wish list for a few months before pulling the trigger and getting it.</p>
<p>This was unfortunately the "slog" book for this year. It seemed to run on for a while, and felt like a long and unfocused read. The characters were interesting but due to the changing nature of the book, which spanned decades(?) I think it lost me about mid-way through afterward, which I eventually finished but more out of obligation than interest.</p>
<p>There's 2 more books in the trilogy but I'll probably hold off on them until I find another gap in my reading schedule.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-circle--the-every">The Circle &amp; The Every<a href="https://bradtaniguchi.dev/blog/books-read-in-2025#the-circle--the-every" class="hash-link" aria-label="Direct link to The Circle &amp; The Every" title="Direct link to The Circle &amp; The Every" translate="no">​</a></h3>
<p>Another newer sci-fi pick.</p>
<p>I only picked these up because I saw the movie recommendations (another possible blog topic!)</p>
<p>The Circle was an interesting read that was fun to read and talk about. It was satire, but not so outrageously so it had a slight edge to it I feel like. The ideas it went over seemed semi-reasonable and that made it somewhat scary to be honest.</p>
<p>The Every doubled down on this premise but felt more like outright satire built out of the pandemic. Both felt like a continuation of the same story, but the characters in the second book weren't as interesting in my opinion. There was also a few open threads that were only implied from the first book so it wasn't that much of a direction continuation, but rather an extension placed in the same universe.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="artemis">Artemis<a href="https://bradtaniguchi.dev/blog/books-read-in-2025#artemis" class="hash-link" aria-label="Direct link to Artemis" title="Direct link to Artemis" translate="no">​</a></h3>
<p>I like Andy Weir, full stop. But, it seems likes he can only really write one protagonist, based upon The Martian, and one of my most favorite books, Project Hail Mary. I left Artemis for last because I knew it was the worst of the three, but I wanted to read it anyway as a way to hopefully fill some time until the Project Hail Mary movie comes out, which I'm very hyped for.</p>
<p>Artemis, like the other books, was an easy fun read, but you can see the "Mark Watney" character all over the place. The plot also didn't really lean into such a witty character. The environment and world building were interesting and fun, but yea I agree its the weakest of the three. I didn't not enjoy it, it just made some very odd choices I feel like and Weir's insistence on writing essentially the same primary character in all his books didn't help.</p>
<p>Either way, I'm still far from Project Hail Mary coming out on the big screen, so I might swing back to that book and write about it again before then!</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="forever-peace--forever-free">Forever Peace &amp; Forever Free<a href="https://bradtaniguchi.dev/blog/books-read-in-2025#forever-peace--forever-free" class="hash-link" aria-label="Direct link to Forever Peace &amp; Forever Free" title="Direct link to Forever Peace &amp; Forever Free" translate="no">​</a></h3>
<p>Fun fact, one of the first novels I read, and why I got into sci-fi in the first place, was I read the Forever War by Joe Haldeman in back in middle school. My English teacher had a small library in her classroom and offered to loan out books to any student interested in reading (she was really cool like that). I picked up Forever War, specifically because the cover had a really cool soldier dude, the title sounded cool, and the book was brand new.</p>
<p>I've read it a few times now, and finally got around to picking up the semi-sequel and direct sequel.</p>
<p>I consider neither as good as the original, with Forever Peace introducing a number of interesting aspects, but like Forever War, coming to a somewhat abrupt, almost out of nowhere end.</p>
<p>Forever Free continued the story of Forever War and went into some interesting places, but it too fell to what I felt like was a huge weight of expectations to essentially pull a complete "deus ex machina" ending that felt mostly insane.</p>
<p>Either way felt good to wrap up that long open series.</p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
        <category label="Reading" term="Reading"/>
        <category label="Books" term="Books"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[2025 reflection, looking forward to 2026 and beyond]]></title>
        <id>https://bradtaniguchi.dev/blog/first-2026-post</id>
        <link href="https://bradtaniguchi.dev/blog/first-2026-post"/>
        <updated>2026-01-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Catching up from a no activity in a majority of 2025, looking into 2026 and beyond.]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">8<!-- --> min read</span></span></div></div><p>Catching up from a no activity in a majority of 2025, looking into 2026 and beyond. As with most things, AI has come for this blog, but don't worry this is still very much "human powered" (for better or worse)!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2025-reflection">2025 reflection<a href="https://bradtaniguchi.dev/blog/first-2026-post#2025-reflection" class="hash-link" aria-label="Direct link to 2025 reflection" title="Direct link to 2025 reflection" translate="no">​</a></h2>
<p>First and foremost, welcome to the 4th iteration of this blog! I'll try to get around to writing up a new post on the previous 3 versions at some point. As I find it an interesting journey, as each iteration was created with specific goals in mind which is a reflection of what I'm interested in learning at the time. This version is no different, which I'll touch a little on below.</p>
<p>2025 blog activity was just a single post which I wrote late in December specifically to point toward this new version. Now that you are reading this version, the transition is complete! I dated this post when I wrote it, but odds are it will be a while before it goes "live" along with the 4th iteration.</p>
<p>Because 2025 was so sparse, I want to dedicate a little more time into writing what I've been doing in regards to development, reading and a few other tidbits. So without further ado, here's how 2025 went in regards to development!</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2025-was-the-year-of-ai-tooling-madness-and-some-clarity">2025 was the year of AI tooling madness and some clarity<a href="https://bradtaniguchi.dev/blog/first-2026-post#2025-was-the-year-of-ai-tooling-madness-and-some-clarity" class="hash-link" aria-label="Direct link to 2025 was the year of AI tooling madness and some clarity" title="Direct link to 2025 was the year of AI tooling madness and some clarity" translate="no">​</a></h3>
<p>2025 was the year I started to <strong>really</strong> look into using AI in depth. I was already using some AI tooling to a degree with early versions of github copilot, but made it a goal to leverage these systems now that they have gained some level of maturity.</p>
<p>Without getting to in depth with specifics, after using a few "agentic AI" IDEs, I realized that github copilot is starting to lag behind, and more aggressive tooling is available. Also, around this time the MCP standard started to get implemented in the tools I was using (copilot included). I started to see the practicality of AI to help not only with development, but to provide a flexible component for automation. Most people talk and focus on the "intelligence" aspect, but I only see a flexible tool that is "artificially intelligent". When pushed AI intelligence falls apart pretty quickly and somewhat obviously in some cases.</p>
<p>For example, if you asked your AI agent what the weather is like, it has no clue what outside is without making some tool call, or web search. It's just acting as the middle man to synthesize a response. This can help, as it can customize the response to your needs and demands, but it's just as clueless about "what outside is" without these external tools. This can be found with some specialized agents, where you ask it what time it is and if it doesn't make a tool call, it will give an older date that aligns with its training material. Or it will tell you outright its own limitations. It isn't magic, it's just how the system works.</p>
<p>That said, me being an automation guy means I've looked for ways to utilize these new tools to build systems and processes that save people time. Even though all LLM powered AI systems now are largely built on theory written decades ago, the scale of these models makes them still pretty powerful at recognizing patterns, and even without integrating with other systems, still a useful flexible part of a systems stack.</p>
<p>It's only once you start to get an AI agent, and integrate it with the outside world you go from a chatbot trying to mimic intelligence, to an autonomous system that can execute tasks on its own, to varying degrees.</p>
<p>There's been a lot of hype around how far AI could actually do, but at the time of this writing it seems like most of that talk has turned out to be closer to sci-fi than reality, with studies such as the MIT review, which found a majority of <a href="https://mlq.ai/media/quarterly_decks/v0.1_State_of_AI_in_Business_2025_Report.pdf" target="_blank" rel="noopener noreferrer" class="">AI projects fail</a>, or the <a href="https://machinelearning.apple.com/research/illusion-of-thinking" target="_blank" rel="noopener noreferrer" class="">Apple study</a> that points to the lack of actual "thinking" within these agents.</p>
<p>This brings me to the point of clarity that I'm focusing on for 2026. Which integrating them into positions where their raw flexibility can be leveraged, while avoiding core limitations and expectations that largely stem from not understanding how the systems work. This largely gets into a few key points, which I'll list below but probably go into more detail in future posts.</p>
<ul>
<li class="">LLM powered AI's are built and defined by their training data, whatever context you give them, and what tools they can integrate with.</li>
<li class="">AIs aren't so much intelligent, but faking intelligence. This doesn't mean they aren't useful, only the premise of them being "experts" is fleeting beyond a critical point.</li>
<li class="">AIs are more tools or systems that can be used within an application to solve very specific problems, that ultimately only work due to their flexibleness, not because they are the best option.</li>
<li class="">If context is most important aspect of leveraging AI, then effective validation is the second most important aspect of leveraging AI.</li>
</ul>
<p>After playing with AI, using it, working within it and trying to take it to its limit, I've come to the conclusion it isn't going anywhere, but it needs focus and work to leverage correctly. Which is one reason I'm back to dedicating time back to this blog.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="so-how-do-i-plan-on-using-ai-for-this-blog-in-particular">So how do I plan on using AI for this blog in particular?<a href="https://bradtaniguchi.dev/blog/first-2026-post#so-how-do-i-plan-on-using-ai-for-this-blog-in-particular" class="hash-link" aria-label="Direct link to So how do I plan on using AI for this blog in particular?" title="Direct link to So how do I plan on using AI for this blog in particular?" translate="no">​</a></h2>
<p>Who doesn't love a little AI slop? Just kidding, I assume you are only reading this because you don't want to read AI slop. I promise to avoid that and write my own way, for better worse. That said, I will use AI for a number of "behind the scenes" work, along with acting as a broad editor to help fix any invalid grammar or spelling mistakes.</p>
<p>I <strong>will not</strong> give the AI a prompt to write a full article, I don't believe that is worth anything to anyone.</p>
<p>I <strong>will</strong> let AI help me handle this blog's files, technical stack and other tasks that "take up brain juice" that aren't directly related to writing.</p>
<p>Personally I think AI as a tool should stay a tool, and it will be used as such. Trying to elevate it beyond this sort of post or use-case is somewhat unethical, and non-genuine. Plus I think AI writes too much like a robot, you can tell when something is written by AI. It usually tries way to hard for no reason.</p>
<p>So yea, AI is here, but not where it counts!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="so-why-a-new-blog-version">So why a new blog version?<a href="https://bradtaniguchi.dev/blog/first-2026-post#so-why-a-new-blog-version" class="hash-link" aria-label="Direct link to So why a new blog version?" title="Direct link to So why a new blog version?" translate="no">​</a></h2>
<p>This new version is built using docusaurus, with the main goal being offloading a lot of random hacks I had previously implemented, along with providing a clean "AI first" slate. This new version is focused almost entirely on the "blogging" aspect, with removal of stuff like "projects" as I feel like this is more important at this time. When anyone can create an MVP in a weekend, my weekend projects aren't any more impressive to talk about than any random vibe coder burning tokens.</p>
<p>I also wanted to dedicate myself to more deliberate deep thinking, and part of that writing, hence why the simplification and focus around the blog.</p>
<p>That said I have a few technical goals for this version beyond just leverage AI for maintenance, and out of the box docusaurus features. Namely I want to finally get around to cross posting/support with dev.to. I enjoy that platform as one of my main sources of learning and keeping up with trends, so I thought it would be interesting to try to write to it and here. Will have a blog post about that... if I ever get to working on it!</p>
<p>Finally, the old version is just "old". It hasn't had activity and I thought it would be a good time to leverage AI to build out a new clean slate, and help keep this maintained going forward.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="summary-and-goals-for-2026">Summary and goals for 2026<a href="https://bradtaniguchi.dev/blog/first-2026-post#summary-and-goals-for-2026" class="hash-link" aria-label="Direct link to Summary and goals for 2026" title="Direct link to Summary and goals for 2026" translate="no">​</a></h2>
<p>I've already started on some new books unrelated to sci-fi, which I'll try to slot in some time to write about in the first dedicated post.</p>
<p>At the same time, even though this post has been written, the site/blog itself isn't published! I'll be working on getting that in line at some point in the next few weeks hopefully.</p>
<ul>
<li class="">get back into open source development, specifically getting up to speed with a few libraries that have been neglected</li>
<li class="">write more blog posts, around specific topics worth</li>
<li class="">cross post this blog with dev.to (mostly because it would be cool)</li>
<li class="">setup a time and place to spend time writing and working on this site, I have a plan to schedule this in but we will see if I follow it!</li>
</ul>
<p>And with that, welcome to 2026, keep learning, keep building and keep questioning everything!</p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[2025-12-27-blog]]></title>
        <id>https://bradtaniguchi.dev/blog/2025-12-27-blog</id>
        <link href="https://bradtaniguchi.dev/blog/2025-12-27-blog"/>
        <updated>2025-12-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[another migration, year in review and the future of my portfolio.site]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">2<!-- --> min read</span></span></div></div><p>A year in review</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2025-12-27-blog">2025-12-27-blog<a href="https://bradtaniguchi.dev/blog/2025-12-27-blog#2025-12-27-blog" class="hash-link" aria-label="Direct link to 2025-12-27-blog" title="Direct link to 2025-12-27-blog" translate="no">​</a></h2>
<p>The last blog for this platform!</p>
<p>So as you can see if you go back through this site/portfolio, this blog has been neglected just like most of my projects. Just like this blog, and the 2 versions before it, its also time to try out a new setup, and new focus with the new year.</p>
<p>So this blog will go away and make way for a <strong>new</strong> one that removes the portfolio/project aspect, and focuses entirely around blog posts. With some of the original ideas I had for this one continuing.</p>
<p>The other big change will be the framework used, this blog version has used <code>nextjs</code> with the goal of improving SEO with static site generation. The process was enlightening, but the next iteration will actually become simpler/more straight forward.</p>
<p>The new version will actually use docusaurus as the main framework, with some underlying plugin code that I plan on writing to leverage dev.to to auto-cross post, with dev.to being the source of truth.</p>
<p>There's no real reason for utilizing dev.to over other platforms, besides it seems like the simplest to leverage. With that, the next post (whenever it actually happens) will be in the next framework/iteration!</p>
<p>I'll also carry over the previous posts into the new one with slight modifications.</p>
<p>See ya there!</p>
<p>Keep building, keep learning!</p>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[end-2024-blog]]></title>
        <id>https://bradtaniguchi.dev/blog/end-2024-blog</id>
        <link href="https://bradtaniguchi.dev/blog/end-2024-blog"/>
        <updated>2024-11-18T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Book-ending the year a little early, a long one!]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">8<!-- --> min read</span></span></div></div><p>A year in review</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="end-2024-blog">end-2024-blog<a href="https://bradtaniguchi.dev/blog/end-2024-blog#end-2024-blog" class="hash-link" aria-label="Direct link to end-2024-blog" title="Direct link to end-2024-blog" translate="no">​</a></h2>
<p>Goodbye 2024! This is a long one, possibly my longest. Again using this as a journal/post-it-note for myself in the future more than anything.</p>
<p>Yes its only November, but I wanted to get this in while I have some time to go thru it, and clear up this site a bit and close out some older issues/ideas I wont be able to get to.</p>
<p>Its been an interesting year with a lot of personal changes on my end (no I wont go into them here!), so this year from a developer perspective hasn't been much more unique outside of the usual. I did keep up with some guitar practice, learned a few new licks and have kept it somewhat consistent lately. Will continue to spend time practicing while I can and just enjoying time with the family!</p>
<p>Going into the new year I plan on expanding some of my developer skills, and cleaning up my github. I think its time to do some spring cleaning and updating some of my super old repos, and also finishing some features completely missing from my chrome-neo-plus project, which is <strong>live</strong>, even without key missing features. Sorry whoever actually is using that thing!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="coding-update">Coding update<a href="https://bradtaniguchi.dev/blog/end-2024-blog#coding-update" class="hash-link" aria-label="Direct link to Coding update" title="Direct link to Coding update" translate="no">​</a></h2>
<p>So there's been 3 main things I've been looking into on my end worth noting:</p>
<ul>
<li class="">looking into modern compiler options with vite/rollup</li>
<li class="">looking back into go</li>
<li class="">leveraging more AI in my day-to-day</li>
</ul>
<p>Beyond these, I'm looking into gearing back up into open source related work, along with cleaning up my github.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="vite-and-rollup-the-future">Vite and rollup, the future?<a href="https://bradtaniguchi.dev/blog/end-2024-blog#vite-and-rollup-the-future" class="hash-link" aria-label="Direct link to Vite and rollup, the future?" title="Direct link to Vite and rollup, the future?" translate="no">​</a></h3>
<p>I've lost track of <code>nx</code> development and updates, as I've focused more on lower level tooling in the form of newer bundler technologies such as rollup and vite (which I think use ESM Build under the hood? I forget.)</p>
<p>I've been interested in them as another gap/knowledge area I think I should expand on as a developer who is always interested in using better tooling to improve the developer workflow. I'll keep looking into these in my spare time mostly as a curiosity, as I can't think of many personal use-cases where I'd want/need to tweak anything beyond the presets already out there.</p>
<p>Personally I think if the web ecosystem moves past webpack based tooling, these rust based ones seem like the way to go. Which leads to my next topic. Either way I'm going to be looking back into <code>nx</code> updates and its ecosystem to see where it is nowadays.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="an-old-interest-go">An old interest, go<a href="https://bradtaniguchi.dev/blog/end-2024-blog#an-old-interest-go" class="hash-link" aria-label="Direct link to An old interest, go" title="Direct link to An old interest, go" translate="no">​</a></h3>
<p>Go or golang is a programming language I've been interested more or less since it was announced. I stopped focusing on it since there was very clearly no reason for me to look into it with the ability to use nodejs as a web developer. However, I feel like I'm at a point where I should expand my horizons a bit more and gain more practical experience with some newer technologies.</p>
<p>As such looking into a language I've always felt good about seems like a nice change of pace. Go has gone thru a number of changes the last few years, but the overall language and ecosystem is the same. I'm not sure if I'll be able to leverage it day-to-day at all but I'm looking
at a few smaller projects that might work with go, rather than nodejs.</p>
<p>See if I post about getting any of this done next time!</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="ai-here-to-stay-but-still-not-impressed-much">AI here to stay, but still not impressed much<a href="https://bradtaniguchi.dev/blog/end-2024-blog#ai-here-to-stay-but-still-not-impressed-much" class="hash-link" aria-label="Direct link to AI here to stay, but still not impressed much" title="Direct link to AI here to stay, but still not impressed much" translate="no">​</a></h3>
<p>I've been seeking to leverage AI more in my every day life. I still use github copilot to help get "fancy autocomplete" and help with larger niche use-cases, but lately I've also been using github gemini for more generic tasks (not chatGPT, because I'm still on the google train!). Its been helpful in some aspects but I still don't feel like it does much more then help digest what I could find on the web in a majority of cases.</p>
<p>I'll still be looking to leverage this more in the common months, but I'm still a huge skeptic. I can't see it going away, but I also can't see it getting much more useful outside of more integrations with other tools. For example I had Gemini act like an editor/reviewer for this blog post and asked it to give hard recommendations of improvement and I only got some high level examples, and even less hard examples that are obvious. I'm not sure if the size of this post impacts it or what, but I'm not impressed. And no I didn't accept its recommendations either!</p>
<p>I still firmly believe AI is still best executed as a "UI" for interacting with a complete system generically. The more integrations and the more powerful those are, the more useful the AI will be. "AI as UI" is also something I'm actually thinking about looking into more in this common year as a project idea, but we will see!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="book-update">Book update<a href="https://bradtaniguchi.dev/blog/end-2024-blog#book-update" class="hash-link" aria-label="Direct link to Book update" title="Direct link to Book update" translate="no">​</a></h2>
<p>I made a very key (and perfectly incorrectly timed!) purchase in the last few months that really pushed my reading into a new level. I jumped onto the boox palma train at the <strong>exact</strong> worse time. For those that don't know, the boox palma is essentially a phone sized e-ink-reader that runs full android, so you can install any android app and use it like a kindle/e-reader but also do most thing a phone could, such as browse the web, check your email and even watch videos (its possible, but its black and white and not the best experience).</p>
<p>I've used this device to replace my kindle and it fills an interesting niche as a device where I can read both kindle (via kindle app) my google play books, and still read stuff on other apps such as wikipedia (for wikipedia dives lol), feedly and libby (library app, hopefully to replace all other apps). Reading stuff on it has been a huge pleasure, which is reflected in my book review below.</p>
<p>Unfortunately, I got this device at the perfectly wrong time as shortly after I got it, they announced the second version and put the first version on sale. However I'm happy enough for now with this current version I'll just suck it up and stick with it until I run into more issues lol.</p>
<p>In terms of actually reading I've grinded thru a good amount of books this year, some I've wanted to read for a while and some other's that I just randomly picked up. Some key ones:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="starship-troopers-and-1984">Starship troopers and 1984<a href="https://bradtaniguchi.dev/blog/end-2024-blog#starship-troopers-and-1984" class="hash-link" aria-label="Direct link to Starship troopers and 1984" title="Direct link to Starship troopers and 1984" translate="no">​</a></h3>
<p>Both of these are name-brand classics, however both felt somewhat like a chore to read. I think its because these are both well known enough that going into them I more or less knew what to expect. That said both fall prey to simply feeling like they overstay their welcome in some aspects. Its highly likely this is just due to being older books written in a different time for topics that were more intriguing years ago, but have been retold/redone so many times today that they feel less impactful.</p>
<p>Either way I'm glad I read them, but I found the other random picks to be more consistently more "fun" to read.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-midnight-library-and-mickey-7-series">The Midnight Library and Mickey 7 (series)<a href="https://bradtaniguchi.dev/blog/end-2024-blog#the-midnight-library-and-mickey-7-series" class="hash-link" aria-label="Direct link to The Midnight Library and Mickey 7 (series)" title="Direct link to The Midnight Library and Mickey 7 (series)" translate="no">​</a></h3>
<p>These ended up all being "page turners". With the Midnight Library being one of the few books I read that isn't sci-fi, but it was an engaging and interesting piece.</p>
<p>I grabbed Mickey 7 once I heard about it being made into a film (or series?) and it was a hugely fun read. Looking forward to seeing how they adapt it, as I think it will be a fun watch.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="multiple-other-titles">Multiple other titles<a href="https://bradtaniguchi.dev/blog/end-2024-blog#multiple-other-titles" class="hash-link" aria-label="Direct link to Multiple other titles" title="Direct link to Multiple other titles" translate="no">​</a></h3>
<p>I read a few other titles not mentioned, but its more sci-fi. Some good, some bad/boring enough I didn't actually finish. I have a (virtual) stack of other books and more currently ongoing I'll save for next time to talk about.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="closing">Closing<a href="https://bradtaniguchi.dev/blog/end-2024-blog#closing" class="hash-link" aria-label="Direct link to Closing" title="Direct link to Closing" translate="no">​</a></h3>
<p>This was a good year for me, a lot of good stuff happened (a lot more than I mentioned above). Its been an interesting time to be alive, and I'm grateful for what I've gotten and experienced. Looking forward to 2025 and beyond, and I hope you are too!</p>
<p>Until next time, keep learning, keep building!</p>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[new-year-newer-stuff]]></title>
        <id>https://bradtaniguchi.dev/blog/new-year-newer-stuff</id>
        <link href="https://bradtaniguchi.dev/blog/new-year-newer-stuff"/>
        <updated>2024-01-15T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Simplifying, and diversifying]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">2<!-- --> min read</span></span></div></div><p>A year in review</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-year-newer-stuff">new-year-newer-stuff<a href="https://bradtaniguchi.dev/blog/new-year-newer-stuff#new-year-newer-stuff" class="hash-link" aria-label="Direct link to new-year-newer-stuff" title="Direct link to new-year-newer-stuff" translate="no">​</a></h2>
<p>Welcome to 2024!</p>
<p>I've slowed down working on my github profile, and any public projects. Work has been sucking up most of my "developer" energy, and I've had a lot going on in my personal life thats been taking up a lot of my time as well. Just not enough hours in the day!</p>
<p>The only project I've tried to stick with in my free time (besides this site/blog lol) is my <a href="https://github.com/bradtaniguchi/chrome-neo-plus" target="_blank" rel="noopener noreferrer" class="">chrome-neo-plus</a> project. This project has a "deadline" in that the <a href="https://chromewebstore.google.com/detail/chrome-neo/hggldlbbkkpnclkimhegjccgeaibeceg" target="_blank" rel="noopener noreferrer" class="">original</a> will get removed from the chrome-extension store due to being on an older manifest. This deadline is <strong>June</strong>. I'm getting close with my new version and hope to get it out just in time, but we shall see!</p>
<p>The only big thing to note is I've gone back to practicing guitar again. I used to play back in high-school, but stopped once I went to college. Picking it back up is a nice way to take a break from screens and just relax. See if I'll be able to keep it up!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="book-update">Book update<a href="https://bradtaniguchi.dev/blog/new-year-newer-stuff#book-update" class="hash-link" aria-label="Direct link to Book update" title="Direct link to Book update" translate="no">​</a></h2>
<p>I read a few more books to close out 2023. I read all of the <a href="https://en.wikipedia.org/wiki/Silo_(series)" target="_blank" rel="noopener noreferrer" class="">"silo" series</a>, which were great sci-fi reads. I don't have Apple TV so I wont be able to watch their show, but I'm sure its good.</p>
<p>I also read Old Man's War. I got it on sale, and it was a pretty entertaining read with a rather hilarious, but interesting premise. I'd consider it far less "hard sci-fi" than I usually ready but it was a light and easy book to fly through.</p>
<p>Finally I also read a physical book that I've had for a number of years and finally got around to reading it. <a href="https://www.amazon.com/Delta-v-Daniel-Suarez/dp/1524742414" target="_blank" rel="noopener noreferrer" class="">Delta-V</a>. Was an interesting near-future read about near Earth asteroid mining.</p>
<p>Looking forward I think I'll read a few more non-fiction books before looking back into maybe picking up a full series of books, or continuing with Dune, which I paid for but just never felt like getting through.</p>
<p>Until next time, keep learning, keep building!</p>]]></content>
        <category label="Chrome Extension" term="Chrome Extension"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[review-of-a-year-of-react]]></title>
        <id>https://bradtaniguchi.dev/blog/review-of-a-year-of-react</id>
        <link href="https://bradtaniguchi.dev/blog/review-of-a-year-of-react"/>
        <updated>2023-09-23T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A review, or retro of using React professionally.]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">6<!-- --> min read</span></span></div></div><p>A year in review</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="review-of-a-year-of-react">Review of a year of React<a href="https://bradtaniguchi.dev/blog/review-of-a-year-of-react#review-of-a-year-of-react" class="hash-link" aria-label="Direct link to Review of a year of React" title="Direct link to Review of a year of React" translate="no">​</a></h2>
<p>Its been a little of a year since I've started using React professionally, and also been a number of months since my last update to this blog.</p>
<p>One of the key reasons for this is I wanted to update the dependencies of this project to get things aligned with the latest release of nx before expanding on it. Now that I've gotten out of the way, I can <strong>finally</strong> get around to adding more content!</p>
<p>So after using Angular for a number of years, then having to pickup React for work I went into React with an idea of the general ideas, but really wanted to get into more in-depth knowledge of how it works in practice. To get this I needed to use it, and that
would just require time applying myself to using the library in different aspects. This took some time, but I think I have a good
idea of how to move forward, and deal with most use-cases I've come across, or could come across.</p>
<p>So lets go to the list!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="react-is-simpler-conceptually-but-is-more-limited-out-of-the-box">React is simpler conceptually, but is more limited out of the box<a href="https://bradtaniguchi.dev/blog/review-of-a-year-of-react#react-is-simpler-conceptually-but-is-more-limited-out-of-the-box" class="hash-link" aria-label="Direct link to React is simpler conceptually, but is more limited out of the box" title="Direct link to React is simpler conceptually, but is more limited out of the box" translate="no">​</a></h2>
<p>This is a pretty obvious one that is usually pointed out, but I want to go into how and why this makes React easier to use, but also more annoying to work with in some cases.</p>
<p>Personally I've found there being essentially only 2 types of "tools" React provides to solve all your problems.</p>
<ul>
<li class="">component</li>
<li class="">hooks</li>
</ul>
<p>Yes there are a <strong>ton</strong> of hooks (will go over that more later), and other patterns such as Context, and different types of components, but just these two "tools" end up being the core fundamentals implied to solve <strong>all</strong> of the problems you could face <strong>building user interfaces</strong>.</p>
<p>This keeps your options simple, <strong>but</strong> forces you to know how to wield them correctly to solve all the problems you come across.
The few "gaps" in available patterns between Angular and React could be re-built or "re-implemented" using just these tools, but
it could require some extra legwork that you just don't get with React out of the box.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="react-hooks-are-more-important-than-components">React hooks are more important than components<a href="https://bradtaniguchi.dev/blog/review-of-a-year-of-react#react-hooks-are-more-important-than-components" class="hash-link" aria-label="Direct link to React hooks are more important than components" title="Direct link to React hooks are more important than components" translate="no">​</a></h2>
<p>Coming from Angular, where there's any number of ways to do something (services, components, directives, pipes, etc), React is much more limited in what it provides out of the box. However, the concept of <strong>hooks</strong>, stands out as one of the single most powerful features. To the point I'd consider saying <strong>thinking of Hooks as the core of React, and components as just the "view" layer</strong>.</p>
<p>Lately I've changed how I create my React UIs around hooks. The pattern I've been relying on is the "single-hook" pattern, which is best compared to the traditional <a href="https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller" target="_blank" rel="noopener noreferrer" class="">MVC pattern</a> (except with focus on just the VC part).</p>
<p>I create a single hook that handles all the logic for a given component, and then the component itself is just a "dumb" component that renders the hook. This means there's roughly 3 parts:</p>
<ul>
<li class="">"controller" component - acts as a high-level "smart" component. This could be the page, or just a high level point.</li>
<li class="">the "state hook" - which returns an object of values+function-callbacks that can be passed into the view components. Internally it could have multiple hooks to further segment the logic, but general acts as the "god-object" to manage most of the business logic.
As long as this logic isn't extremely complex the pattern holds. Its easy to split-up code, but that could become a problem depending on what your doing.</li>
<li class="">view-component(s) - these are dumb components that take in props from the "state hook" and is managed by the "controller" component.</li>
</ul>
<p>With this pattern its easy to build simpler UI elements, or at least create what I consider to be <strong>testable, and approachable</strong> "smart" React components.</p>
<p>Thus far the pattern has worked well and scales decently. If I had to do a complex form, or something with a lot of dynamic logic, I'd consider it only a starting point though.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="reacts-ecosystem-is-a-huge-pain">React's ecosystem is a huge pain<a href="https://bradtaniguchi.dev/blog/review-of-a-year-of-react#reacts-ecosystem-is-a-huge-pain" class="hash-link" aria-label="Direct link to React's ecosystem is a huge pain" title="Direct link to React's ecosystem is a huge pain" translate="no">​</a></h2>
<p>With Angular there's only a few sensible choices in regards to libraries and patterns. With React there's a ton of choices. Which is both good and bad, its good when what you pick goes well with what you've already picked, but things quickly start spiralling out of control as you start integrating more and more technologies.</p>
<p>For example, I've been focusing on nextjs (which this site is built on) for my side-projects, but have been having trouble keeping up with all the changes and different ways to utilize the meta-framework. Furthermore, I wanted to use tailwindcss, but had issues with it integrating with nx and storybook.</p>
<p>I'm sure there is a way to get all of it worth together happily, but that gets even more difficult as nextjs changes forcing a review of all of the technologies. This is also one of the main driving forces why a lot of my side-projects get paused. (besides me just losing interest!)</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="overall-its-been-great-though">Overall its been great though<a href="https://bradtaniguchi.dev/blog/review-of-a-year-of-react#overall-its-been-great-though" class="hash-link" aria-label="Direct link to Overall its been great though" title="Direct link to Overall its been great though" translate="no">​</a></h2>
<p>React, thus far has been a joy to work with once some of the quirks have been figured out. Hooks are powerful, and force you into thinking and writing code a specific way, but it does make things easier once things are build with the patterns in mind.</p>
<p>Being able to just completely isolate business logic into a singular function makes testing and documenting <strong>a breeze</strong>. It also makes re-using code between components much easier.</p>
<p>Components with TypeScript is very descriptive and easy to use, as long as they don't get too bloated.</p>
<p>Jest and integration with other tools is better, as React is "king" in that regard.</p>
<p>Features from meta-frameworks have been a blast, and options are everywhere.</p>
<p>So thats more or less been 1 year, and I'm looking for many more (hopefully!) working with React.</p>
<p>Next up is re-focusing on React, and maybe using it in new contexts, such as outside of the browser. See how many months it takes for me to get around to writing a post on that topic!</p>
<p>Keep learning, keep growing, keep building!</p>]]></content>
        <category label="React" term="React"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Dogfight game remake and updates]]></title>
        <id>https://bradtaniguchi.dev/blog/dogfight-game-remake-and-updates</id>
        <link href="https://bradtaniguchi.dev/blog/dogfight-game-remake-and-updates"/>
        <updated>2022-03-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Remaking a classic]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">5<!-- --> min read</span></span></div></div><p>Remaking a classic</p>
<p>The last few weeks I've been focused primarily on 2 projects.</p>
<ol>
<li class="">A <a href="https://github.com/bradtaniguchi/intercept-game" target="_blank" rel="noopener noreferrer" class="">Dogfight game remake</a> - a fun board-game remake that is based on the Milton Bradley Game Dogfight.</li>
<li class=""><a href="https://github.com/bradtaniguchi/nx-workspace-template" target="_blank" rel="noopener noreferrer" class="">nx-workspace-template</a> - a project that is for a github template that integrates most of common tooling I usually use.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="dogfight-game-remake">Dogfight game remake<a href="https://bradtaniguchi.dev/blog/dogfight-game-remake-and-updates#dogfight-game-remake" class="hash-link" aria-label="Direct link to Dogfight game remake" title="Direct link to Dogfight game remake" translate="no">​</a></h2>
<p>I've been focusing on this project as its one of the few project where the scope is already defined, which should help keep scope creep down and hopefully let me finish this project. I'd compare it to my "bomb-defuse-utils" project, which I is one of the few truly "finished" projects.</p>
<p>I've been trying out a few more techniques with Nx, Storybook and TS to help build this project. For example, I've been using "branded types" essentially everywhere and seeing how far/useful it is to take such a concept. I've also been taking a TDD + functional approach to help "build-up" the codebase to handle the general game logic.</p>
<p>I'm just about to start on the actual rendering of the UI, so I can actually play something. I've been debating how to handle the actual rendering with Angular and think I have a
sensible rxjs/ngrx based solution that should scale well. I'll be aiming to getting the actual board rendering + drag and drop down before applying the actual logic I've already written.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="nx-workspace-template">nx-workspace-template<a href="https://bradtaniguchi.dev/blog/dogfight-game-remake-and-updates#nx-workspace-template" class="hash-link" aria-label="Direct link to nx-workspace-template" title="Direct link to nx-workspace-template" translate="no">​</a></h2>
<p>For a project that is nothing more than setting up existing tooling, this project has taken up a large amount of my development free-time. I've been primarily tweaking
github-page support along with trying to integrate a "global storybook" build which would be deployed as part of an "internal-tools" deployment. So far its close, but storybook
as usually is being a huge pain.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-next">Whats next?<a href="https://bradtaniguchi.dev/blog/dogfight-game-remake-and-updates#whats-next" class="hash-link" aria-label="Direct link to Whats next?" title="Direct link to Whats next?" translate="no">​</a></h2>
<p>I've been trying to update the <code>nx-workspace-template</code> with the hope of getting it to a point where tools I don't always use like Storybook, all features of nx, and github-actions are all leveraged well enough to be flexible for future projects. I'm close, but I still am fiddling with it all the time.</p>
<p>However, I <strong>really</strong> need to get back to the flash-card-app I've languished over for <strong>years</strong> now and actually get it finished. Its possible I carry over some of the core logic to a new repo that uses the <code>nx-workspace-template</code>, or I just trudge on with what I have with it before. The plan being is to use that project as a refresher on using firebase for the intercept-game project, which will use Firebase for non-local multiplayer in the future (If I get that far that is!).</p>
<p>Finally, I hope to update this portfolio/blog site more. I'm hoping in the past few months Scully docs/capabilities have been improved to hopefully help with my development workflow.
As right now its somewhat annoying debugging a lot of features I thought would work, but just are a huge pain to deal with. I also might update the UI to move away from primer
to use either the usual Angular Material, or even maybe tailwindcss.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="book-update">Book Update<a href="https://bradtaniguchi.dev/blog/dogfight-game-remake-and-updates#book-update" class="hash-link" aria-label="Direct link to Book Update" title="Direct link to Book Update" translate="no">​</a></h2>
<p>I re-read <a href="https://www.amazon.com/dp/B078Y98RG8/" target="_blank" rel="noopener noreferrer" class="">"The Phoenix Project"</a> by Gene Kim. I read this book a few years back, and wanted to re-read it on my kindle so I can highlight anything I missed when I read it last time.</p>
<p>Reading the book a second time allowed me to focus on a few key parts that I wasn't to focus on the first time. Such as the "Three Ways" the eccentric character Erik brings up. I knew this was important the first time I read the book, but didn't focus on it as well.</p>
<p>Here's a quote I found explaining the three ways:</p>
<blockquote>
<p>The First Way helps us understand how to create fast flow of work as it moves from Development into IT Operations, because that's what's between the business and the customer. The Second Way shows us how to shorten and amplify feedback loops, so we can fix quality at the source and avoid rework. And the Third Way shows us how to create a culture that simultaneously fosters experimentation, learning from failure, and understanding that repetition and practice are the prerequisites to mastery</p>
</blockquote>
<p>The other physical book I've started to at least skim is "A philosophy of Software Design" by John Outserhout. I've heard this was a good book that can replace/be-compared to the classic "Clean Code" by Robert C. Martin. I've been picking it up in my spare time to get my eyes of the screen every now and then. Its been an interesting read so far, but I've been taking it slow and steady.</p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
        <category label="Angular" term="Angular"/>
        <category label="Nx" term="Nx"/>
        <category label="Storybook" term="Storybook"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[New year, same stuff]]></title>
        <id>https://bradtaniguchi.dev/blog/new-year-same-stuff</id>
        <link href="https://bradtaniguchi.dev/blog/new-year-same-stuff"/>
        <updated>2022-01-12T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Still making progress, but not where it counts]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">2<!-- --> min read</span></span></div></div><p>Still making progress, but not where it counts</p>
<p>Hello world 2022!</p>
<p>Its a new year, but same stuff going on for me. The projects I have lined up are still lined up. I also started advent of code 2021, but couldn't get past the first few days due to time commitments and the usual laziness. I <strong>may</strong> go back and work on that in the future, but for now its on the way side.</p>
<p>The primary effort has been focused on my <code>nx-workspace-template</code> repo. I've been adding common functions and utilities to that repo so it should be easier to get going faster. However, this project is more of the usual "optimize the flow", when really I still need to put the work in to finish the projects I already got.</p>
<p>Beyond <code>nx-workspace-template</code>, I've got the same projects more or less lined up waiting for contributions:</p>
<ul>
<li class="">"Flash card app" which <strong>still</strong> needs to be finished, and has been paused more or less before anything has actually gotten going.<!-- -->
<ul>
<li class="">this project might also be migrated to the <code>nx-workspace-template</code>, so things can get going faster in terms of the CI/CD updates. However the costs related to this, as its a private github project will probably explode. So more improvements need to be made on that front.</li>
</ul>
</li>
<li class="">chrome-neo-2 chrome extension replacement for my older chrome-neo project<!-- -->
<ul>
<li class="">this project might actually get <strong>replaced</strong> with a new version that will use the <code>nx-workspace-template</code> repo.</li>
</ul>
</li>
<li class="">advent of code 2021 - continue grinding it out with the advent of code puzzles</li>
<li class="">codewars-node-api - I need to finalize the docs on this one and show "some life".</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="book-update">Book Update<a href="https://bradtaniguchi.dev/blog/new-year-same-stuff#book-update" class="hash-link" aria-label="Direct link to Book Update" title="Direct link to Book Update" translate="no">​</a></h2>
<p>I finished Dune over the break, it was very much a grind. I moved onto a book called "Recursion", but Blake Crouch as a "palette" cleanser and it was a nice read I got through in roughly week.
I'm going to re-read "The Phoenix Project" to get back into the spirit of DevOps, and hopefully re-focus on one of the many side-projects I have with the spare time I do have.</p>
<p>Until next time, keep learning, keep building!</p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Struggles with scully]]></title>
        <id>https://bradtaniguchi.dev/blog/struggles-with-scully</id>
        <link href="https://bradtaniguchi.dev/blog/struggles-with-scully"/>
        <updated>2021-11-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Why is everything so difficult?]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">3<!-- --> min read</span></span></div></div><p>Why is everything so difficult?</p>
<p>I spent a good few hours today bashing my head against a feature for this portfolio I just <strong>couldn't</strong> get working.
The basic idea was to leverage scully's <code>transferState</code> service to "save" github API data I load, so I could integrate
my github gist snippets into this app.</p>
<p>However, I ran into issues at every turn with minimal insight into what was going on.</p>
<ol>
<li class="">
<p>Github's api is rate limited to 60 requests per hour. I would hit this and only get a small <code>403</code> error in my scully build.
Furthermore, I couldn't get any further insight into the error beyond the code, so I can to manually add log statements in the library to get any idea
that I was getting rate limited.</p>
</li>
<li class="">
<p>To workaround the rate limit, I got a personal access token and set it up for codespaces. This would of been ok, except
I had a typo in my header, and ran into more vague errors.</p>
</li>
<li class="">
<p>After realizing my mistake, I started on the actual feature where I assumed I could use scully to get the raw data from the api,
and then manage it within the app. Instead, I just got the <code>id</code> property and nothing else. <strong>I should look back into this part, as I might of overlooked a feature
of scully.</strong> Regardless, because I just got the <code>id</code>, I thought I could use the <code>transferState</code> service to "save" the full data, <strong>if</strong> I make a direct call
via <code>http</code> to the API, through it.</p>
</li>
<li class="">
<p>I updated my github api service to make the call, and only got <code>undefined</code> in return. After bashing my head against the service more, I realized
the <code>transferState</code> was returning undefined because it was <strong>getting an error</strong>. By this point I stopped, as this is around the third time scully has
directly hidden errors from me, which is a <strong>huge</strong> pain when the docs are missing so much.</p>
</li>
</ol>
<p>Because of this, I might start looking for alternative static site generators for Angular (or just bite the bullet and not use Angular!).
Its one thing to lack features, but to spend so much time fighting the framework itself is just too annoying.</p>
<p>With this post, I think I'll start spending some time on my other side projects that don't rely on scully.
The first project will be the flash card app, which is connected to firebase, but doesn't have much UI.</p>
<p>The other project will be the chrome-neo app, which will be a new version of the chrome-neo chrome extension I made for college using angular.js.
This new version will probably also rely on firebase, and provide more features than the current version.</p>
<p>Keep learning, keep building <!-- -->👍</p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
        <category label="Scully" term="Scully"/>
        <category label="Angular" term="Angular"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[New script and Angular 13]]></title>
        <id>https://bradtaniguchi.dev/blog/new-script-ng-13</id>
        <link href="https://bradtaniguchi.dev/blog/new-script-ng-13"/>
        <updated>2021-11-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Today I'm going to be updating how I create blog posts, so its a little easier.]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">1<!-- --> min read</span></span></div></div><p>Today I'm going to be updating how I create blog posts, so its a little easier.
Along with that, I'll be trying to upgrade this project to angular-13, which
recently released.</p>
<p>Hopefully things go well!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="other-updates">other updates<a href="https://bradtaniguchi.dev/blog/new-script-ng-13#other-updates" class="hash-link" aria-label="Direct link to other updates" title="Direct link to other updates" translate="no">​</a></h2>
<p>Work has been busy, so I haven't had a chance to look into my other projects much,
but I've had them in mind. I think continuing to update this portfolio is still
one of my main priorities.</p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
        <category label="Angular" term="Angular"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[The Halloween Edition]]></title>
        <id>https://bradtaniguchi.dev/blog/the-halloween-edition</id>
        <link href="https://bradtaniguchi.dev/blog/the-halloween-edition"/>
        <updated>2021-10-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Longer overdue updates]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">2<!-- --> min read</span></span></div></div><p>Longer overdue updates</p>
<p>Happy Halloween for those that celebrate it!</p>
<p>So, I've been <strong>busy</strong>. To busy to work on side-projects, this site, or even finish
hacktoberfest. I was able to get in 2 accepted PR's, but my third isn't finished, and
I never found time to get my fourth and last one. I was going to plant a tree this year,
but it seems like I wont even be able to find enough time to contribute enough to accomplish that!</p>
<p>Regardless, I've been busy working and handling a bunch of stuff outside of development,
like hosting some parties, and going to live events. Its been great to actually get
back into things after not doing anything for over a year.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="future-work">Future Work<a href="https://bradtaniguchi.dev/blog/the-halloween-edition#future-work" class="hash-link" aria-label="Direct link to Future Work" title="Direct link to Future Work" translate="no">​</a></h2>
<p>My side projects have languished behind my few hacktoberfest contributions, and I look forward
to getting back into them now that I wont feel guilty working on them. I have 2 projects I want
to focus on the next few months before the end of the year.</p>
<ol>
<li class="">
<p>Flash Card App - this was the one I mentioned in the last post. The last thing I
was able to finish before focusing on hacktoberfest was the actual ngrx+firestore state management.
I'm on the side of "its too complex for its own good" right now, but it was a nice learning experience.</p>
</li>
<li class="">
<p>Chrome-neo2 - the original version hasn't been updated for years. I think expanding
on it should be necessary given that the chrome store has changed a number of policies.
To the point I'm not sure if my extension can be updated without updating a number of properties.</p>
</li>
</ol>
<p>I think re-looking into chrome extension development with all of what I've learned would be an
interesting and fun experience.</p>
<p>Until the next time, keep building, keep learning!</p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[New blog generation]]></title>
        <id>https://bradtaniguchi.dev/blog/new-blog-generation</id>
        <link href="https://bradtaniguchi.dev/blog/new-blog-generation"/>
        <updated>2021-10-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[New way to name and generate blog posts]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">3<!-- --> min read</span></span></div></div><p>New way to name and generate blog posts</p>
<p>From here on out, blogs will be generated using the same logic as the other types of posts,
rather than dates. This should make things more descriptive, informative, searchable
and easier to find later.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="onto-the-updates">onto the updates<a href="https://bradtaniguchi.dev/blog/new-blog-generation#onto-the-updates" class="hash-link" aria-label="Direct link to onto the updates" title="Direct link to onto the updates" translate="no">​</a></h2>
<p>I haven't written a blog post in a while due to primarily <strong>being really busy</strong>. Work has been
a lot, sucking up most of my energy. However, I've re-focused onto the following tasks/projects
for the last few weeks, which should carry over into the rest of October.</p>
<ol>
<li class=""><strong>Pivoted away from learning Clojure.</strong></li>
</ol>
<p>A few weeks back I took some time to look at the jobs available for learning Clojure in the Los Angeles area, more
as a curiosity than anything. I basically found <strong>no jobs</strong> for that specific technology. Because of that, I dug into
the technology as a whole, and realized that its <strong>very niche</strong>. <a href="https://insights.stackoverflow.com/survey/2021#section-most-popular-technologies-programming-scripting-and-markup-languages" target="_blank" rel="noopener noreferrer" class="">Stack Overflow's yearly dev survey</a> put it
below 2% of respondents.</p>
<p>Because of this, I stopped my learnings of the language, as not only would it be far fetched to get good enough to
actually use it day to day, it would be nearly useless in regards to future possible job opportunities.</p>
<p>Instead, I've started reviewing topics "closer to home", so I've been reading older docs on Reactive programming with
<a href="https://rxjs.dev/" target="_blank" rel="noopener noreferrer" class="">rxjs</a>.</p>
<ol>
<li class=""><strong>Starting to seriously work on the final iteration of my "main side-project"</strong></li>
</ol>
<p>My main side-project is essentially a flash card app. Which was only slightly more interesting than a TODO-app.
However, I've been paying for its domain for a year+. Its not much (12$ a year), but I realized I should get
something up on the domain and call it "finished". Because of this I've started working on what is now the <strong>5th iteration</strong>
of the project with the pure goal of finishing it with bare-bones functionality.</p>
<p>I'll be spending most of my extra development energy on this project, and I've been keeping track of my work using
<a href="https://toggl.com/track/" target="_blank" rel="noopener noreferrer" class="">toggl.io</a> to see how "quick" I actually did it.</p>
<ol>
<li class=""><strong>Hacktoberfest has started, and I've been looking for open source projects to contribute too</strong></li>
</ol>
<p>I personally like the idea of hacktoberfest. If anything it forces one to "get out of their comfort zone" and contributing
to open source. I've been working on a project for someone who has helped me in the past. Which I think is a nice way
to learn something new, while "giving back" directly. I'd like to find at least 1 other open source repo to contribute
to before months end and will be looking around after I finish up the ones currently on-going.</p>
<ol>
<li class=""><strong>Continue updates on this portfolio/blog</strong></li>
</ol>
<p>This site has been more "off to the side" in regards to recent updates. There are still a good amount of smaller things,
and improvements I need to make, but they will come in time.</p>
<p>Thats all the updates I have for now, keep building, keep learning!</p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[More of the same]]></title>
        <id>https://bradtaniguchi.dev/blog/2021-09-19-blog</id>
        <link href="https://bradtaniguchi.dev/blog/2021-09-19-blog"/>
        <updated>2021-09-19T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[I'm back going over the same side project I've been iterating against.]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">2<!-- --> min read</span></span></div></div><p>I'm back going over the same side project I've been iterating against. With the
main driving force being I'm still paying for the domain name.</p>
<p>Its a simple flash-card app, except this time I'm purposely building it with the
goal of finishing it. This means limiting the amount of ops by using firebase,
keeping the requirements as simple as possible, and leaning on the technologies
I know the most.</p>
<p>It also means the features of the app are going to be limited to the simplest
aspects, and I wont optimize much, if anything until the basics are working.</p>
<p>Essentially the core requirements are the "proof of concept" level, and there
isn't anything beyond that. So I should be able to focus on actually finishing it.</p>
<p>I already started the project, using the <code>nx-template-workspace</code> repo as a
starting point, and this week spent a few hours setting up some re-usable ngrx.</p>
<p>The ngrx code still need some work, as I realized I could refactor it to
support dead code elimination, which would allow it to be moved to the
nx-template-workspace so it could be used for future projects.</p>
<p>Finally, I started re-using <a href="https://toggl.com/" target="_blank" rel="noopener noreferrer" class="">toggl</a> to track my time, so
I can keep a rough idea of how much time I'm spending on this project overall.
I've been using this system to keep track of actual work, and side project work,
more to get an idea of how toggl works, and possibly get some metrics on how
much I'm working overall.</p>
<p>Hopefully I'll stick with this project until it gets into a usable state. All
the previous 4 versions got decently far (roughly 30%) before I abandoned them,
but all in all I <strong>did</strong> learn something with each iteration, and so far the
latest one is no different.</p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
        <category label="Angular" term="Angular"/>
        <category label="React" term="React"/>
        <category label="Nx" term="Nx"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Vacation time here I come!]]></title>
        <id>https://bradtaniguchi.dev/blog/2021-09-02-blog</id>
        <link href="https://bradtaniguchi.dev/blog/2021-09-02-blog"/>
        <updated>2021-09-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Vacation time here I come!]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">1<!-- --> min read</span></span></div></div><p>I realized the last actual time off I took was <strong>before the pandemic</strong>, which might
explain why I've been feeling rather burnt out as of late. I did take off 2 days
since then, but 1 of those was for moving.</p>
<p>Because of all this I finally took a last minute day off before the labor day weekend to help
recoup. I'll probably be spending it learning more about clojure, or just taking it easy beyond
tending to some personal things. Hopefully by next week I'll be feeling much
more energized!</p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[List page updates]]></title>
        <id>https://bradtaniguchi.dev/blog/2021-08-31-blog</id>
        <link href="https://bradtaniguchi.dev/blog/2021-08-31-blog"/>
        <updated>2021-08-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[List page updates]]></summary>
        <content type="html"><![CDATA[<div class="readingInfo_vMDs"><div class="stats_k43M"><span class="stat_MBsE"><span class="icon_k_HJ">📖</span><span class="label_ATaA">1<!-- --> min read</span></span></div></div><p>I've <strong>finally</strong> gotten around to updating this blog/portfolio site with updates to the "list" pages. The list
pages are the pages used to list the blog, snippets, apps, and project posts.</p>
<p>From the "end-user side" the update added the following:</p>
<ul>
<li class="">fuzzy text searching searching via <a href="https://fusejs.io/" target="_blank" rel="noopener noreferrer" class="">fuse.js</a></li>
<li class="">sorting by created-date and title</li>
<li class="">tag filtering</li>
</ul>
<p>Together it should be easier to find more interesting topics over time.</p>
<p>I just recently fixed some issues that was breaking the actual loading of these pages (really need to get around to adding som e2e tests),
but otherwise the above features should more or less be available now.</p>
<p>On the "dev-side" I was able to try out more of storybook to see what its all about. I don't think
the 1 component I created with <a href="https://storybook.js.org/" target="_blank" rel="noopener noreferrer" class="">storybook</a> is the "model example" of how you can leverage
storybook, but it was at least a great learning experience.</p>]]></content>
        <author>
            <name>Brad Taniguchi</name>
            <uri>https://bradtaniguchi.dev</uri>
        </author>
    </entry>
</feed>