Category: programming

  • Why You Should Put Your Bash/Zsh Configurations in Source Control

    Why You Should Put Your Bash/Zsh Configurations in Source Control

    Note: You can see my zshconfig here. As developers, we spend a considerable amount of time fine-tuning our environments. Customizing your bash or zsh configuration can significantly enhance your productivity, whether through personalized shortcuts, workflow automation, or optimized command sequences. However, there’s always one looming concern—what happens when you get a new machine? The problem…

  • WordCamp US 2024: Key Takeaways

    WordCamp US 2024: Key Takeaways

    A quick disclaimer: There is so much to do and so much to learn at WordCamp. I highly encourage you to watch all of the sessions online; however, I am only covering a couple of the sessions I was able to attend in person this week. Just because it isn’t mentioned here, does not mean…

  • Handling Missing Build Assets in NPM Packages Due to .gitignore

    Handling Missing Build Assets in NPM Packages Due to .gitignore

    When integrating custom WordPress blocks into other React projects, you may encounter a situation where some built assets are missing after running npm install. This issue often arises when your npm package relies on files generated during the CI (Continuous Integration) process that are not necessarily checked in to the project. The Problem: .gitignore vs.…

  • Understanding How Yarn Traverses Parent Directories for .npmrc Files

    Understanding How Yarn Traverses Parent Directories for .npmrc Files

    When working with Yarn, it’s essential to understand how it handles .npmrc files, especially when dealing with multiple configurations across different environments. A common issue can arise when a missing .npmrc file in a package causes discrepancies between local and CI/CD environments like Jenkins. How Yarn Handles .npmrc Files Yarn, by design, traverses the directory…

  • 2 – Concurrent Editing in TipTap

    2 – Concurrent Editing in TipTap

    In the first blog post in this series, we set up a basic Tiptap editor. Today, let’s enhance the editor by integrating real-time, concurrent editing capabilities using Yjs, a powerful CRDT library for shared editing, and the y-webrtc connector for peer-to-peer communication. Initial Setup Let’s start by examining the initial Tiptap setup without concurrent editing…

  • 1 – Getting Started with Tiptap

    1 – Getting Started with Tiptap

    Rich text editors are essential components of many modern web applications, providing users with powerful tools to compose and format content. Tiptap, a headless editor framework built on top of ProseMirror, is a popular choice among developers who need a flexible and extensible rich text editor in their Vue applications. In this blog post, I’ll…

  • Enhance Your Development Workflow with Custom Bash Functions

    Enhance Your Development Workflow with Custom Bash Functions

    As developers, we often find ourselves performing repetitive tasks that, while necessary, consume a good chunk of our productive time. Fortunately, by leveraging the power of bash scripting combined with the customization capabilities of shell configuration files like .bashrc or .zshrc, we can significantly streamline our workflows. Why Use Custom Bash Functions? Custom bash functions…

  • Customize Slack with One-Click Reactions

    Customize Slack with One-Click Reactions

    Recently, I was looking for ways to optimize my slack experience by finding ways to streamline or automate some of my workflows. When poking around the Preferences window, I found that you can add fast, one-click emoji reactions to any of the messages you hover over. For example: If your go-to response when someone asks…

  • Logging in to WordPress with Cypress Testing

    Logging in to WordPress with Cypress Testing

    Cypress is a popular end-to-end testing framework that can be used to test web applications, including those built on WordPress. One of the key features of Cypress is its ability to easily authenticate a user in the local environment, which is crucial for testing any functionality that is only available to logged-in users. In this…