Blog
Articles, guides, and notes on software engineering.
Modern JS Talk: Destructuring Assignment
Master destructuring assignment for arrays and objects with default values and aliasing in modern JavaScript.
Recent Posts
Modern JS: import and export
Master ES6 import/export statements, named exports, default exports, and module composition in JavaScript development.
Modern JS Discussion: var/let/const
Understand var, let, and const declarations, scope types, hoisting behavior, and temporal dead zone in JavaScript.
Quickly Create a Markdown Editor with React
Create functional React markdown editor with marked library supporting live markdown preview and transformation.
Being Geek: Career Strategies to Stay a Geek
A review of Being Geek. Written by a geek, but even non-geeks who are engineers can learn a lot from it. The mindset and attitude of being an engineer are candidly told in a slightly quirky voice, making it a book you will want to keep close and revisit.
Presented at PHP Conference 2017 on "Starting OSS as a Third-Year Engineer"
Discover insights from presenting OSS development as a third-year engineer at PHP Conference 2017 and gaining community stars.
Test-Driven Development
A review of Test-Driven Development by Example. Kent Beck's foundational TDD text. Through worked examples, it teaches how to grow a design by writing tests first and turning the red-green-refactor cycle. The first book to reach for when learning TDD.
Installing anyenv on Mac
Install and configure anyenv on Mac to manage multiple programming language versions with proper PATH and environment setup.
Introducing React to Laravel with Bower
A guide on integrating React into a Laravel project using the Bower package manager. It walks through setting up a build environment with Babel, JSX syntax, and gulp/elixir to develop the frontend with React instead of the usual jQuery.
Trying Out Laravel's Deployment Tool: Laravel Envoy
Deploy Laravel applications efficiently with Envoy including tasks, git hooks, and Slack deployment notifications.
How to Use a Common Template for Error Messages in Laravel
Explains how to handle Laravel error pages using a common template. It covers overriding the renderHttpException method in the Handler class to respond to HttpExceptions, and design patterns for building custom, shared error pages.
Customizing Values Validated by Laravel Form Requests
How to customize the values that a Laravel form request validates. This is useful when you want to validate not only the request body but also route parameters, for example on an endpoint like /post/:id/delete where the ID comes from the URL.
Excluding Table Names from Laravel's Many-to-Many Relations
Configure Laravel many-to-many relationships with custom pivot table names in Eloquent relationships.
Differences Between redirect('hoge') and redirect()->to('hoge') in Laravel
Understand the differences between redirect() and redirect()->to() helper functions and when to use each.
Directory Structure and Nginx Config for Integrating SPA with Laravel
Configure Laravel for single-page apps with proper directory structure and Nginx routing for frontend and backend.
Automating Let's Encrypt Certificate Renewal (cron) with a Touch of Slack Integration
Automate Let's Encrypt certificate renewal with cron scheduler and Slack notifications for both completion success and failure events.
How I Managed to Fix the Persistent Failure of Let's Encrypt Certificate Auto-Renewal
Fix Let's Encrypt certificate renewal failures with certbot-auto and force-renew options configured properly for nginx web servers.
Let's Encrypt Certificate Auto-Renewal Script
Automate monthly Let's Encrypt certificate renewal using automated shell script execution with Slack notification integration support.
No MySQL Driver After Installing PHP7
Resolve PHP7 MySQL driver missing issues by installing php-mysqlnd package through REMI yum repository.
Setting Up Nginx as a Reverse Proxy
Notes on setting up Nginx as a reverse proxy on a Sakura VPS that had been running Apache. It covers a configuration where Apache and Nginx coexist, along with port changes, virtual host settings, and load balancing as points to consider when building a reverse proxy.