Years ago, I was a contributor for the student newspaper The Reflector at Mississippi State University. I published articles under news, opinion, and life categories. In one particular opinion article (pdf) originally published in September, 2014, I am found invoking the famous “Websters Dictionary defines…” to discuss the innovation of the Apple Watch. My opinion in the article was that the watch was fashion, and that Apple would fail miserably, and here I am now eating crow.
As I write, I’m wearing an Apple Watch. It’s only my second device in 6 years and I can say it has definitely changed my relationship to technology in ways I didn’t anticipate. More on that later.
In 2021, my colleague Jack Mazza completed an honors thesis in which he surveyed the future of wearable technology in telehealth. His work included building a sample app and generating data using his own wearable and canvassing healthcare professionals at University of Mississippi Medical Center in Jackson. His proof-of-concept app demonstrated to Jack the various data his own wearable offered him, and his survey questions reflected a perspective of telehealth and wearable data that is well-rounded. You can read his findings for yourself by reviewing his thesis (pdf), and here’s a quick quote that will convince you it’s worth 5 minutes of your time:
The results showed overwhelmingly that healthcare professionals believe wearable technology could greatly aid the Tele-Health communications process for both patients and healthcare workers alike. The addition of the data could help many diagnoses be more accurate and give patients better care.
In general, Jack’s main question was about whether wearable data was considered trustworthy by medical professionals. The findings are generally optimistic about wearable tech and its impact on simplifying communications between doctors and patients.
My first Apple Watch was a Series 3, which I believe was the first time the product was offered with cellular. I managed to keep that device for over 2 years before I upgraded to a Series 6. Not only have the devices withstood my normal traffic, I was able to sell my first watch on the cheap.
One of the first things I realized when I started wearing an Apple Watch was that I received way too many push notifications. Since then, nearly everything is silenced except for text messages and phone calls. The watch had replaced the buzzing in my pocket and made me more concious of how often my phone distracts me.
The health tracking features of the Apple Watch are primarily what Jack’s thesis explored and I can attest to their own usefulness in my life. It has been an infrequent occurrence but I have experienced occasional panic attacks. The meditation feature on the watch helped me practically by giving me an activity I could focus on to calm down during some attacks, as well as giving me biometric feedback by showing my heart rate was lowering over time.
I haven’t needed to share the data with any doctors yet but every now and then I make use of the ECG feature introduced in the Series 6 to graph my heart rate.
Wearable tech and telehealth should be adopted in areas with low access.
Anyone is welcome to join the conversation, just reach out to me on my server or by DM for more details
Zack Sistrunk will be looking for a squad in Planetside 2 on PC Watch on Twitch or join in on Discord
I use LinkStack as an app at link.michaellamb.dev and have added it to my social media pages as a link dashboard. I often share the link to the app with new contacts to give them all the options to connect with me. There are even a few other users on my LinkStack with their own pages as the app has an admin feature and a registration toggle (disabled by default). My instance of LinkStack is running in the Raspberry Pi cluster1 I have documented in the past2.
LinkStack is an open source project which solves link sharing and management of shared links. It offers a customizable page like Linktree, but with so much more opportunity and freedom – as long as you’re comfortable starting a Docker container!
I trust the project’s documentation on GitHub and recommend using that to determine how you might want to add this free and available resource to your web properties.
Linktree is a very quick and simple solution for creating a list of links with customizable buttons, colors, and backgrounds but its features are limited. Linktree intentionally limits these features to ensure only the most user-friendly experience is possible on their platform. When compared to LinkStack, Linktree has no feature that comes close to the Themes offered by default with new instances of a LinkStack app. Custom Themes in LinkStack gives users the ability to design their page exactly how they like it.
LinkStack offers a robust platform with the option to host yourself or host on their servers. Self-hosting a LinkStack app is straightforward and can happen in a few clicks. LinkStack’s inspiration is to empower data ownership among individuals and groups who need a reliable and autonomous solution for sharing links. Alternatively, you may find using a hosted instance might be right for you. The LinkStack org provides low-cost hosting in addition to their community instance program which anyone can use for free.
Linktree isn’t a project, it’s a product. Their pricing model is a higher premium than LinkStack’s.
Because it is an open source project, LinkStack offers community support on Mastodon and Discord.
LinkStack is written in PHP with the Laravel framework. Developers may contribute bug reports, code discussions, code fixes, and new features. The Discord server is where communication around this work takes place. The maintainers use GitHub Flow as an integration strategy.
In January 2023, I started a community-oriented leadership program called Leadership Greater Jackson based in Jackson, MS. The program introduced me to community leaders across the city, county, and state, and helped create and shape new relationships with other members of this 35th cohort of the program. A number of my colleagues at C Spire have gone through this program and after chatting with them I decided to apply and was lucky enough to be invited!
This post is intended to highlight my experiences, as well as serve as an open invitation to my fellow Leadership members to stay in touch by joining my dev Discord. LGJ35 members should send me a direct message on Discord @michaellambgelo to receive the official @LGJ35 role.
Here’s the last Instagram post commemorating our closing retreat. We spent the morning at the Mississippi Museum of Art before enjoying lunch at the Capital Club. Then we enjoyed an afternoon of fellowship, offering reflection on our time together. A small group joined us for a short walking tour where we heard about the history of Jackson from John Spann. At the end of the day, we celebrated with a rooftop after party!
I started this program with no prior relationships with anyone else in the cohort. I have since established some solid relationships and created a number of acquaintances such that my local network is significantly enriched. Here’s my first post featuring Akilah and Randy!
Most of our class days were spent in Jackson but this post features photos from a weekend retreat in Tupelo, MS.
This particular day was difficult because the controversial bill HB 1020 was being debated in the state legislature. HB 1020 expands a state police force within the city limits of Jackson and establishes an unconstitutional, unelected judicial district. The bill was signed into law by the governor in April.
Again, this day had some challenges because of the contents of HB 1020 as well as some other differences but one of the things was was amazing about LGJ35 was how we used these opportunities to push ourselves into some stretching, necessary conversations.
Our cohort split into different groups to organize some fun, educational events in an inner city community. Healthy Food day found us potting chard, making veggie tacos, and sauteeing collard greens.
The Jackson Medical Mall is a revitalization of Jackson’s first commercial mall. It was reimagined as a place for community services. Check out the Instagram post for more! I was certainly surprised by everything offered there.
Quality of life was an important theme to consider in the context of the city of Jackson. We spent a lot of time learning about the cultural and art experiences offered by the city’s museums and arts districts, Fondren and Belhaven.
dash. (or dashdot) is a modern server dashboard, running on the latest tech, designed with glassmorphism in mind. It is intended to be used for smaller VPS and private servers. Images are hosted on DockerHub, and are available for both AMD64 and ARM devices.
The image will require use of the --privileged
option flag. This option gives the container privileged access to the host system, allowing it to perform potentially dangerous operations that are typically restricted.
You can find out more about this featured GitHub project here.
OBS is a video capture technology built as open source software. Plugins are available to extend functionality and add helpful features, such as a Twitch integration to view chat and live streaming stats. OBS is also capable of recording, helpful for people who are interested in sharing content like a code review.
I use OBS to stream to two different channels: my personal channel @michaellambgelo and the channel I run for work, @cspiregaming. In general, I use OBS to put together the primary view for what I want to stream to Twitch.
I use the same technologies for both channels but in different ways. For my personal channel, I’m primarily interested in interacting with the chat via microphone. With C Spire Gaming, I’m primarily interested in interacting with the chat myself via the camera and the group I have assembled. How that group is assembled is varied, and thus there are multiple implementations possible for streaming I’ve found.
For most streams, I want a camera on myself and to capture at least one game screen. I’ve found it wonderfully trivial to use both my personal and my work iPhone as a camera to help me compartmentalize between the two streams. The Twitch app for iPhone enables use of the front-facing camera for livestreaming with a simple interface that also displays quick stats and offers a view of the chat. For people interested in streaming using the Just Chatting cateogry, this is really all that’s needed to get started building your Twitch presence.
Desktop capture can take place many ways. One method is to use a capture card: a video interface capable of copying a video feed; usually repeats an HDMI connection. The interface can be added directly to OBS and formatted with any other elements as desired. Other, more complex methods include use of virtual cameras in OBS and use of VDO.ninja. VDO.ninja will be discussed in a separate section below.
There’s always one experience I’m obsessed about: the viewers. Let’s say it’s a bleed over of being Customer inSPIREd.
If there’s someone who’s out there watching this stream, we can only hope they’re listening. There’s also the chance they can’t hear us, so there’s the question of whether finding a closed captioning solution is worthwhile or not.
I haven’t found an easy solution for closed captioning on these streams that are available for public consumption. For professional work I’m able to use Microsoft Teams and its machine intelligence which takes advantage of the stream delay to parallel process the audio stream and generate live captioning.
Regardless, I have to think of the stream audio as a singular experience. For my streams at home, I include the desktop audio for whatever game I’m playing, plus a microphone I can physically mute. For C Spire Gaming streams featuring a virtual event, it’s more complex. For C Spire Gaming streams that are in person, I want to be able to capture a group of people playing the same game, which is a different question with the same answer as my personal stream but which requires a different configuration: either a single microphone or an array of well-mixed microphones to capture multiple people and their crosstalk as a singular experience, as though one were in the room. I’ll deal with virtual events in the next section, so in person events and personal streams are the focus here.
I used the iPhone as a microphone at yesterday’s C Spire Gaming Family Meetup. I streamed both the Mario Kart 8 Deluxe tournamenttwitch vod link challonge link and our Mario-only Super Smash Bros. Ultimate tournamenttwitch vod link challonge link this way. It was great to capture the 4-5 people sitting in front of the screen as well as the general soundscape around them. Sometimes the crosstalk is not intelligible but that’s when the most exciting things are happening on stream, so it feels impossible to separate them without multiple cameras and a team of audio engineers working to individuate each player such that the stream is so dynamic that they could run an indivudal stream in addition to being included in another ongoing livestream. C Spire Gaming just isn’t quite at that level of sophistication when it comes to our live tournaments, but maybe one day we’ll have something that can scale.
I use a Yeti Blue mic for my personal streams. There is a physical mute button, which I prefer, and the quality is higher than the wireless Corsair headset I have. I’ve learned that using a headset for all audio out is the best when in a space that is also participating in the stream via audio, that way there is no chance of the audio doubling into the stream without the headset being deafeningly loud. I’ve gotten my mic configured such that it sounds good when I’m at a low volume and a high volume, should I get excited and exclaim. At least, I hope so! That’s my goal, and I fully endorse my audience giving me feedback if this is offbase.
For C Spire Gaming Community Game Nights I use a technology called VDO.ninja. I can create a virtual room and invite a group of people inside. There, they’re able to share their video and/or their microphone and camera. Similar to the sentiment I share in the Yeti Blue microphone section, anyone joining the stream must use a headset for all audio they want to hear so as not to crowd out the stream audio with the ambient sound. I can include individuals dynamically using a link per person, though primarily I let the stream run viewing a group scene which is also a single link generated by VDO.ninja and imported into OBS as a browser source. VDO.ninja uses WebRTC to create peer-to-peer connections between anyone who joins the room, and it is relatively straightforward to share the desktop (and capture system audio, if needed) as well as any connected cameras, so joining a livestream for C Spire Gaming just requires a link and a password.
While I haven’t needed to use VDO.ninja for an in-person event yet, I have found it useful for streaming to my personal channel. Because it’s P2P streaming, using another machine in my house to run the stream decouples the stream processing from my gaming machine.
One drawback to VDO.ninja is that mixing audio for multiple people does not appear to be trivial, so for our purposes when streaming groups of people for C Spire Gaming everyone is muted in VDO.ninja and instead we use a Discord voice channel, which I’m then able to capture and send to the stream.
OBS is a powerful tool which I use to stream for multiple channels on Twitch. The last, perhaps most important aspect of OBS is the ability to save and switch between profiles and scene collections. I consider these components of OBS tightly coupled, with many scene collections intended for one profile.