Kevin Hoyt · Notes

Dispatches from development and design.

I recently had a client whose project required putting a basic REST API in place to handle data-oriented requests. The target language was PHP for a LAMP deployment. Here is a basic PHP "Hello, World" REST API endpoint example that includes CORS with an allowed list.

Honey pot fields can and should also be checked on the server. This is in case the bot is going to the server directly, and bypassing the form. The honey pot value from the form is submitted to the server. It should be null when it arrives. If there is content, there is a bot.

A honey pot is a means to prevent bots from submitting forms. A seemingly valid input field is hidden by CSS. Bots will read the code, and put content into the field - humans will not. Validation checks for content in the field. If there is content, then a bot is using the form.

I am not sure if this is considered old-school or modern, but you can also use span elements to control wrapping with a good degree of precision. Toggle from display: inline to display: block as needed at media query break points. This also works well in i18n situations.

If you want to emphasize to the browser where to best break/wrap text, you can use the special character &#8203; or the <wbr> element. Useful for breaking at sentences - especially on mobile viewports. Also consider text-wrap, overflow-wrap, hyphens and word-break.

AI in action today as I am building sales assets from existing video demonstrations. Upload video to S3. Create an AWS Transcribe job that points to the video. Run transcription. Feed resulting transcript into ChatGPT for outline and sales demo script. Up next: build decks.

I am a huge SVG fan. It is vastly underappreciated and underused on the modern web. I was excited then to run across this video by Loris Sigrist on SVG Filters. Loris does a great job with a gentle, yet awe-inspiring introduction. Also, check out SVGFM by Chris Kirk-Nielsen.

A client that wanted an animated typing effect on their website. A word would be typed out. Pause. The word would be deleted (backspace). Iterate an array of options. Claude went with setTimeout(). I prefer requestAnimationFrame() and a state machine. Full code in a Gist.

I am usually able to avoid viruses that my family brings home. Not this time. After a trip to visit family in Omaha, my wife says "I should have worn a mask" and proceeds to develop a cold. Few days later, my turn. Meanwhile work is all about the early AM meetings.

One last CSS snippet for good measure. Yes, this site required a lot of complex gradients. This CSS rule will fill the background of a container element with a linear gradient. On the diagonal. Based on solid colors, but nearly transparent. Thanks again color-mix function!

Not perhaps as equally as impressive as the color-mix function, but sometimes you need to fill a span of text with a gradient color. Not the background; the text itself. The tricky part here is in getting the clipping properties set correctly. CSS is so powerful these days.

Needed to fill the background of a website hero section with a complex gradient. Two large radial gradients, one in the top-right area, and one in the bottom-left area. Large enough to overlap considerably. Nearly transparent, but based on solid colors. I give you, color-mix.

Came out of a store in a strip mall today, only to find a car parked next to mine. It was parked so close that I could not get into my car. Went back into the store and wandered. Checked on the situation every ten minutes or so. Finally gone after an hour.

I enjoy recommendations from Mike's Book Reviews. Mystic River came out on top last year. It is a good enough book, but without any fantasy or hard science to keep me interested, I feel like I am reading a transcript of a 48 Hours murder mystery. Tough to keep turning the page.

I was setting up an LLC for software development services and management coaching until ... I needed to select the date the business was created. Apparently Jan 29, 2026 is not in the past enough. 😂 It is 2026 y'all. Check your validation algorithms.

Think about your job as a business you own. There is more to it than writing code (product). Sales and marketing (comms), HR (continuing education), IT (reporting), and more.

It is worth spending time learning at least a handful of cognitive biases. This was required learning for managers and anyone involved in hiring at AWS. It sharpens critical thinking and helps you communicate ideas more effectively.