Coding Challenge #103 - Software Teleprompter
This challenge is to build your own software teleprompter.
Hi this is John with this week’s Coding Challenge.
🙏 Thank you for being one of the 91,894 software developers who have subscribed, I’m honoured to have you as a reader. 🎉
If there is a Coding Challenge you’d like to see, please let me know by replying to this email📧
Coding Challenge #103 - Software Teleprompter
This challenge is to build your own software based teleprompter. With this coding challenge I’m really scratching my own itch. I have a hardware teleprompter, which is great. I can look at the teleprompter and I see a full additional screen. When I’m looking directly at the screen it looks like I’m looking directly at the guest I’m talking to on my podcast - Coding Chats. It’s brilliant for that.
Unfortunately as a teleprompter, when it comes to displaying a script for me to record a video for the Coding Challenges YouTube channel, it is terrible. I can’t simply import a document. When you enter text it wants to break it into chunks and for the life of me I cannot get it to scroll at a sensible speed.
Instead I’d taken to using the fact that it works as a second screen to simply display the document I’m working from and then scroll it manually. Of course being a software engineer, there’s another option - build a software teleprompter! Which I have done. Now it’s your turn!
🚨 NEWS
New Monthly Live Workshops
I’m starting a live monthly workshop. The first one will cover AI-assisted software engineering.
It’s happening on Friday 12th December at 17:00 GMT. It will be run on Zoom and is free for all paid subscribers.
The workshop will address the following questions, giving you my answers:
Are LLMs AI?
What is an LLM?
What is an AI coding assistant?
Why do we care what an AI coding assistant is?
How can we use that knowledge to get the most from them?
There must be more to it than that! How can we leverage AI to build better software?
Which will help you make better use of AI when developing software.
If you’d like to sign-up for the workshop the link is on the paid subscriber benefits page.
The workshops will be monthly. Paid subscribers will be able to request and vote on future topics.
More Videos Added To The Coding Challenges YouTube Channel!
I’m continuing to add new videos to the Coding Challenges YouTube Channel, if you’re interested please consider subscribing to the YouTube channel. If you have suggestions for content, please hit reply / send me a message with them.
Recent videos cover:
You can find these videos and several others on the Coding Challenges YouTube Channel.
If You Enjoy Coding Challenges Here Are Four Ways You Can Help Support It
Refer a friend or colleague to the newsletter. 🙏
Sign up for a paid subscription - think of it as buying me a coffee ☕️, with the bonus that you get access to a monthly AMA and 20% off any of my courses.
Buy one of my self-paced courses that walk you through a Coding Challenge.
Join one of my live courses where I personally teach you Go by building five of the coding challenges or systems software development by building a Redis clone.
The Challenge - Building A Software Teleprompter
In this coding challenge you’re going to be building a software teleprompter. It will allow the user to enter some text, set the font face, set the line spacing, scale the font size, set the scroll speed and start and stop the scrolling of the text.
You could build this as a terminal application, desktop application, mobile application or web based. If you go for a mobile or web application I encourage you to deploy it! If you create a terminal or desktop application, have it built and available as a release on your GitHub repo. Treat this project just as you would a professional one - practice as you perform!
Step Zero
As always we start at step zero. This is where you decide what sort of application you’re going to build and how you’re going to build it, selecting the programming language and tech stack you’ll use.
Step 1
In this step your goal is to allow the user to enter some text. By the time you have completed this step a user should be able to start the teleprompter and both type in or paste into it the text that they wish to be prompted with.
Be sure to show the user the text.
Step 2
In this step your goal is to allow the user to format the text. As a minimum they should be able to set the font face and size for all the text. They should also be able to add newlines.
Add some controls below the text that allow the user to select a font face and a slider to change the font size.
Ideally, stretch yourself and allow formatting with Markdown so they can create headings and emphasis within the document.
Step 3
In this step your goal is to support adjusting the left and right margins as well as adjusting the line spacing. Add some controls below the text that allow the user to make these changes.
Step 4
In this step your goal is to allow the user to set the scroll speed and start / stop the scrolling
via a button on the UI or by pressing the space bar, when the text entry box is not selected.
Step 5
In this step your goal is to support mirroring of the text vertically. Add a button to mirror the text, when clicked it should mirror and un-mirror the text. Be sure to ensure that the scrolling still works correctly.
Step 6
In this step your goal is to allow the user to import the text from an external source, I would suggest a URL, i.e. to import a markdown from a GitHub repo and from a Google Doc using the Google Docs API.
Going Further
How to take this further:
Ship it! Deploy it!
Allow upload of a document including text, MS Word and PDF.
Add support for listening to the speaker, then scrolling at the speed of their delivery.
P.S. If You Enjoy Coding Challenges Here Are Four Ways You Can Help Support It
Refer a friend or colleague to the newsletter. 🙏
Sign up for a paid subscription - think of it as buying me a coffee ☕️ twice a month, with the bonus that you also get 20% off any of my courses.
Buy one of my courses that walk you through a Coding Challenge.
Subscribe to the Coding Challenges YouTube channel!
Share Your Solutions!
If you think your solution is an example other developers can learn from please share it, put it on GitHub, GitLab or elsewhere. Then let me know via Bluesky or LinkedIn or just post about it there and tag me. Alternately please add a link to it in the Coding Challenges Shared Solutions Github repo
Request for Feedback
I’m writing these challenges to help you develop your skills as a software engineer based on how I’ve approached my own personal learning and development. What works for me, might not be the best way for you - so if you have suggestions for how I can make these challenges more useful to you and others, please get in touch and let me know. All feedback greatly appreciated.
You can reach me on Bluesky, LinkedIn or through SubStack
Thanks and happy coding!
John

