Scopes of Work

I’ve been programming professionally for 20 years, and there is one elusive document that still escapes me: the scope of work.

I have seen them… just rarely. There have been Bills of Materials wearing the SOW name tag, but open them up, and it’s just a parts list. Usually I gather scraps of information from meetings and phone calls and jot them down in a notes.txt file that lives with the other project documentation. It’s not great but it’s something, and plain text will outlive all of us.

I’ve written previously about the need for proper documentation to program “correctly,” and I stand behind those words. How can we hope to end up in the right place without a map to where we’re going?

Continue reading “Scopes of Work”

The Future of AV Programming: Part 7

2023 is coming to an end, and I’m so glad. This year has felt like I’ve stumbled out of one bad project right into the next. It’s been a constant battle of double-booking, short timelines, and delayed product. Everyone’s unhappy.

I thought it would be a good time to reflect on the challenges this year, but also to weave in my thoughts on where this is all headed in Part 7 of my Future of AV Programming saga.

Continue reading “The Future of AV Programming: Part 7”

Tools of the Trade

Being in the field again for the past week has been a good reminder that every AV programmer should equip themselves with some essential tools. I foolishly cleaned out my backpack last week because I wanted to have an easier time passing through security at the airport. Normally I take everything out of my backpack, dump it into my checked bag, then when I get where I’m going, transfer everything back into my backpack. Oh well, lesson learned.

Continue reading “Tools of the Trade”

NetLinx: A Real Program

This is the final post in this series, and we’re going to add some finishing touches to the user interface. One thing that’s been bothering me is that our system instantly turns on and off. This doesn’t work in the real world: equipment takes a moment to turn on and off. Even if we don’t match the exact status of the equipment (it’s all faked in our program anyway), it’s good to have a minimal startup and shutdown time to prevent the user from getting things into an unknown state.

Continue reading “NetLinx: A Real Program”

NetLinx: SNAPI

In this post, we’ll explore the Standard NetLinx API–or SNAPI, for short. This is one of those topics I didn’t fully embrace when I started programming AMX, but over time, I grew to appreciate the benefits of adhering to a standard.

I’ve updated the touchpanel layout in this post, so if you want to grab the latest code, it’s available on GitHub.

Continue reading “NetLinx: SNAPI”