beachcasts Hardware productivity

Sharing the Beachcasts office and studio set up

I’ve had some ask how my office is set up, and what equipment I use for my various recordings. Since I do podcasts (RunGeekRadio), live streams (Beachcasts on Twitch), and video recording (Beachcasts on YouTube), I needed a versatile setup that facilitated all of these various activities. So, below I will share each aspect of my office/studio, and how I have it set up.

NOTE: I will return to this post from time to time and update it as I update equipment, so it will serve as a good resource to point folks at.

First, here is what takes up 6-feet wide by 5-feet deep. I often hear folks say they can’t do what I do because they don’t have space. Though, in reality, it is pretty compact.

Studio Setup

I use laptops, and desktop, and one external monitor.

Everything sits on an adjustable desk from Ikea. I really love this desk for its simplicity, along with being able to hide all the cords underneath because of the handy cord hammock under it. And it is motorized, making it a breeze to raise or lower. I typically set it to 26 inches high when sitting, and 43 inches when standing. Then I simply pull the standing mat forward, and I continue working in a very similar way whether sitting or standing.

Computers and Software

My primary desktop is a homemade system. With an AMD Ryzen 7 3700X 8-Core CPU, MSI Nvidia GeForce Ventus RTX 2060 Super, 32 GB RAM, and 2 x 1TB M2 SSD modules, it is able to handle anything I throw at it even at 6 years old. All that is mounted on the MSI MAG Tomahawk x570 motherboard, which runs very cool…even under load. I run Windows 10 as the OS and do anything I want to on it, using WSL2 for much of my development and Docker host. I’d used Ubuntu as my OS for 12 years but recently switched to Windows 10 in early 2021. It is much better than I remember in the past, especially with WSL2 for development. LEDs are on the fan, motherboard, RAM, and SSDs.

Desktop system

I do all my audio recordings on this desktop using Audacity software.

With this desktop, I use a Maxkeyboard Nighthawk X8 mechanical keyboard with Cherry MX brown switches. I like the mechanical keyboard feel and feedback, and the brown switches give me just enough noise to enjoy the experience. There is a slight clicking, but not as clicky as the blue switches. I recently purchased some rubber rings to install on each key, so the bottoming-out noise will not bother others when I’m on conference calls. I haven’t installed them yet.

I also use a Logitech M510 wireless mouse. It uses 2 AA batteries, and charges really quickly. It has been a solid performer and is very reliable.

My beautiful monitor is a Samsung C43J89x 43-inch ultrawide curved 120Hz model with picture-in-picture capability and built-in KVM using a USB-C connector. It operates at 3840×1200 resolution and is like having dual monitors. It’s wonderful.

The monitor is mounted on a Humanscale M8 monitor arm, which is wonderful and strong. I get only minimal movement from it, even with such a large/heavy screen mounted on it. A new monitor will be much lighter and will be truly amazing.

The second (work) laptop is a 16″ MacBook Pro mounted on a Roost laptop stand. The Roost was recommended to me by a few friends in the programming space, and it has been amazing. However, you will want an external keyboard and mouse to go with it, as it is hard to type when a laptop is raised from the table. So, next, I will talk about those.

The external keyboard is the Apple Magic Keyboard, which is wireless and connects via Bluetooth. The feel of typing on it is really nice, and has a mechanical “feel”. Kinda like the old-style Macbook Pro keys, before they ruined them with butterflies. It charges via USB connection to the laptop, and only needs charged every 3 months.

Instead of a mouse as an external for the Mac I use the Apple Magic Trackpad. It is larger than the trackpad on the Mac, and has all the same features, including Force Touch feedback to simulate a click. It is also Bluetooth and only needs charged every 3 months.

How does it all work?

Since upgrading from an old Dell laptop to a new desktop, I now record everything I do on the desktop using OBS. In the past, I used multiple laptops for recording and streaming due to the intensive nature of it. However, the desktop allows me to utilize a single system to do all the things.

I can also record using multiple systems with the Razer Ripsaw HD capture card. (Not to be confused with the original Razer Ripsaw, which was garbage.) The desk clamp shown in the picture is an extra thing I bought to simply hold it steady on the back of my desk and has a handy arm (it’s actually a headphone holder) for any cables not being used.

Razer Ripsaw HD
Razer Ripsaw HD

Why the Ripsaw HD? Because it is totally plug-n-play and doesn’t require any additional software to work. And it also has a 4K passthrough from the source to the external monitor. In addition, it sends 1080p video to a 2nd system at 60 fps.

How does the Ripsaw HD work? By using this capture card enables me to capture the screen from the Dell, and use it in the OBS recording as a source. To do this it sits in the middle of everything. Basically, the HDMI coming out of the Dell is plugged into the capture card, and then another HDMI goes from the capture card to the external monitor. This enables the Dell to use the monitor without any issues, up to 4K video. Meanwhile, there is another USB-c output on the Ripsaw HD that plugs into the USB or USB-c on the 2nd laptop and can be used as a viewing video source. Then it is a simple matter to add it as a source in an OBS scene.

Audio/Video Stuff

Also for a video cam, I use a Logitech Brio. At 1080p and 30 fps, it does a great job, though the Brio can be costly. I also have multiple Logitech C920 webcams used for additional scenes. I have 2 of them, and sometimes incorporate them as additional views in b-roll footage. They are also handy when I travel, with an extra little hard case I picked up. They are all very versatile webcams. (I’ve added a Nexmo lens cover that can be opened/closed because I bought this up before they came out with the C920S that comes with a privacy cap.)

Logitech Brio 4K webcam
Logitech Brio 4K
Logitech C920 webcam
Logitech C920 webcam

As for audio, I have 2 different configurations. For podcasting, and YouTube videos, I use the Rode Podcaster as my primary microphone. The sound is amazing, and hard to beat. I have it mounted on a Rode PSA1 studio boom arm, with a Rode PSM1 shock mount to prevent desk movement vibrations and sounds. It also has a Rode WS2 pop filter to help keep the audio crisp and free of pops from my talking.

Rode Podcaster
Rode Podcaster

It connects via USB to the Dell and has an external headphone jack on the top that allows me to hear myself, and any system sounds, while I’m recording. As a dynamic mic, it is very directional and requires me to speak directly into it. This avoids any other background noises, like keyboard typing or air conditioning hums.

Additional audio is provided by a Rode Wireless Go setup. I’ve been using it for live streaming, so I’m not required to be close to the larger Podcaster mic. I also picked up the new Rode Lavalier Go to enable me to clip it on my t-shirt for ease of use, and then clip the Wireless Go on my belt. I picked up an added SC7 cable for connection to a mobile device or Mac.

Wireless Go
Wireless Go with SC7 cable
Lavalier Go
Lavalier Go

Recently, I also added some Audimute acoustic panels on the wall behind my monitor. In the past, I fought to remove the echo from the flat wall. I’m really impressed with how much the panels reduce the echo. Originally, I considered ugly “egg carton” style foam. However, I found they did little to really help, which resulted in spending a little more money for proper panels.


As the last bit of equipment, this would not be complete without talking about lighting. In addition to overhead lights, and natural light coming from the large window beside my desk, I’ve added some face lights that help eliminate shadows, and enable the webcam to do a much better job. In mid-2021 I picked up some Elgato Key Lights when they were on sale.

But in the past, I used light created with a few parts. First, there are 2 inexpensive tripods to use as holders. Each one holds a square Tolifo LED panel light that has adjustable brightness. (here are the power adapters to go with them)

Tolifo LED light
Tolifo LED light

However, I found that even at lower levels the light was a little harsh and needed some diffusion. That is when I picked up the added panels and arms to hold them. This made all the difference in the quality of light, and means I do not have blaring light forced into my eyeballs. Yay, I can actually see the displays! It is very soft and provides a great spread.


Some may have noticed the additional Bluetooth speaker on the desk. This is the JBL Charge 3, which is connected to a Google Chromecast Audio and plays music most of the time each day. It has great sound, but I don’t think either of these things is produced any longer.


I hope you found this enlightening/helpful. Let me know if there are any other aspects of the setup you’d like more details on. And watch for a future post on how I set up OBS.

Adam Culp beachcasts consulting php Uncategorized

10 reasons to become a consultant or have a consulting business

In this video I share 10 good reasons to start a consulting business or become a consultant. Before you start looking into how to become a consultant, Adam Culp of Beachcasts PHP videos shares points from his experience to help you figure out if being a PHP consultant is the right job for you. As you look into how to become a consultant, and before you become a consultant, consider these things carefully.

Or you can view this video on YouTube at:

#10 Multiple Hats
#9 Constant New Problems (to solve)
#8 Always Learning
#7 Helping (mentoring) People
#6 You’re The Fixer
#5 “Expert” vs “Resource”
#4 Fame!
#3 Sell, Sell, Sell!
#2 Travel
#1 Flexible Schedule

BONUS considerations for the self-employed
#1 No Dress Code
#2 Unlimited Earning Potential
#3 Unlimited sick days / vacation
#4 Flexible Work Location
#5 Freedom to say “No” or turn down jobs

apigility beachcasts expressive laminas project linux foundation php zend Zend Framework Zend Framework 2

Zend Framework becomes Laminas project

Today it was announced that Zend Framework is being rebranded as Laminas project. (drawn from the meaning “a thin layer”) Along with the rebrand comes some other important changes as well. Yes, this includes Expressive and Apigility, so continue reading.

Some History

Zend Framework is one of the largest and oldest PHP frameworks and has become a staple for enterprise development around the world. As of April 2019, it has over 400 million lifetime downloads of all packages associated with the project, which has seen a 4-fold increase in just the last 2 years alone. Despite this amazing track record, up to now the project has been supported and guided single-handedly by Zend Technologies, and later Rogue Wave Software.

Awesome Changes

Therefore, to continue this growth and receive the best support possible, the Zend Framework team is announcing that all projects under that umbrella will rebrand to a newly formed “Laminas” project“, which aims to continue their mission as an open source project hosted by the Linux Foundation. The transition will enable more companies to provide support for the projects they’ve come to depend on and help it continue to grow. As part of this transition, it is important for them to differentiate the open source project from the Zend commercial brand. Therefore, the new name “Laminas” project was created.

As part of this move, the Expressive microframework, Apigility api framework, as well as the MVC framework will all be part of the Laminas project.

I will try to add more details as they become available to us all, and will likely also do a Twitch stream and YouTube video with Beachcasts and that video can be viewed HERE.

Support Laminas Project

For more information, please see the new site dedicated to the Laminas project, and if you would like to become a member and/or support the project at the Linux Foundation (their blog post), please join and become a member.

Impact to current users

The framework team is working on scripts and tools to help users update namespaces and vendor packages with the renaming. See the video below for more info.

Beachcasts Video

I added this, and a little more content about the Zend Framework rebranding to Laminas project under the Linux Foundation. Check it out below.

Adam Culp beachcasts consulting php

10 bad things about consulting, and why it might not be for you

In this video I share 10 bad things about being a consultant, and why a consulting job might not be a good fit for you. Adam Culp of Beachcasts shares points from his experience to help you figure out if being a PHP consultant is the right job for you.

Or you can view this video on YouTube at:

#10 Travel
#9 No set schedule
#8 No upward mobility
#7 Not for the introverted
#6 Communication, communication, communication
#5 Swallowing pride
#4 Always be selling
#3 Problems!
#2 Expected to “know it all”
#1 No “new” projects

BONUS considerations for the self-employed
#1 accounting/collections
#2 taxes
#3 No sick days / vacation

beachcasts command line Docker php Quick Tips video

How to get lines of code in PHP with PHPLoc via CLI or using Docker

This video shows how to get the lines of code in a PHP application by using PHPLoc from the command line or using Docker. PHPLoc is a command line application to generate a small but useful report. Adam Culp will show how to use it from a Docker Container using a Docker Image he created. PHPLoc demonstrated on the Concrete5 CMS codebase.

Key Topics:

  • Why find the lines of code
  • PHPLoc is an application to find the lines of code in PHP
  • Different methods to use PHPLoc
  • How to use a Docker image to run PHPLoc
  • Comments as a code smell

Associated Links: – Code smells explained – The place for developers to start with Docker – link to the image used to build the Docker container used in this video – location of the PHPLoc tool – Concrete5 CMS code I’m using in this video