Coding

Programming has been a hobby of mine since I was a child. I am entirely self-taught, and have managed to carve out a career in the field that spans over twenty years.

Initially, I worked with BASIC on the TI 99/4A, Atari 130XE, and the Commodore 64 and 128. This transitioned easily to Mac OS 7's QBasic. Then I learned Microsoft Visual Basic 4 through 6 and starting making small programs and games. My first two programming jobs involved me learning Microsoft Access, with all kinds of back-end VBScript.

In 1998, I got heavily interested in web technology, and took a dive into HTML and JavaScript. Soon, I'd pick up Visual Basic.NET, C#, and ASP.NET. I was then able to transition my HTML knowledge to the modern HTML5 browser. My JavaScript experience also readied me for learning Node.js. Along the way I've picked up a bunch of PHP and C/C++ as well somehow.

In many ways, I consider the core concept of coding to come quite naturally to me. You simply break a task down into smaller and smaller tasks. What really fascinates me about coding, however, is how you can put all these simple tasks together to do something phenomenal.

I am involved in many projects outside of my professional career that involve programming in some way. This page is dedicated to showcasing those projects.

Latest Commits

courtesy message for when bot needs to reconnect
Merge pull request #106 from professor-l/add-custom-font
hotfix: make logging less annoying
add seven game qual format
Merge pull request #107 from professor-l/seven-game
simple reconnect policy
Merge pull request #105 from fractal161/event-logging
tweak event log message
Update pronoun behavior
log all messages sent from twitch
remove private dependencies in django settings
Use the correct endpoint for getting chatters.
Add custom font option for events
actually implement courtesy message lmao
remove unused imports, tweak log more
Allow port changes mid-game, since AP can change the port on you
Version 0.5.13.
Version 0.5.12.
v0.5.12
Version 1.0.0.
More bug fixes and enhancements found in testing.
Various bug fixes and enhancements.
Merge pull request #3 from roncli/dependabot/npm_and_yarn/logging/applicationinsights-2.9.2
Complete race bot logic.
Merge branch 'main' of github.com:roncli/sprint-racebot
Merge pull request #4 from roncli/dependabot/npm_and_yarn/logging/dockerode-4.0.2
Merge pull request #5 from roncli/dependabot/docker/logging/node-20.11.0-alpine
Merge pull request #7 from roncli/dependabot/docker/node/node-20.11.0-alpine
Initial commit.
Use working domain.
Update URL to redirect to.
Use correct join for tags.
Version 2.1.18.
Merge pull request #1180 from roncli/dependabot/npm_and_yarn/node-roncli-com/googleapis/calendar-9.5.1
Merge pull request #1171 from roncli/dependabot/npm_and_yarn/node-roncli-com/ws-8.16.0
Merge pull request #1162 from roncli/dependabot/npm_and_yarn/node-roncli-com/monaco-editor-0.45.0
Fix Necrolab URLs.
Merge branch 'main' of https://github.com/roncli/roncli.com
Merge pull request #860 from roncli/dependabot/docker/certbot/certbot/certbot-v2.8.0
Merge pull request #1159 from roncli/dependabot/docker/certbot/certbot/certbot-v2.8.0
Merge pull request #1062 from roncli/dependabot/docker/certbot/certbot/certbot-v2.8.0
Merge pull request #663 from overload-development-community/dependabot/docker/certbot/certbot/certbot-v2.8.0
Merge pull request #112 from roncli/dependabot/npm_and_yarn/types/node-20.10.4
Merge pull request #111 from roncli/dependabot/npm_and_yarn/types/node-20.10.3
Merge pull request #172 from roncli/dependabot/npm_and_yarn/app/fortawesome/fontawesome-free-6.5.1
Merge pull request #110 from roncli/dependabot/npm_and_yarn/types/node-20.10.1
Merge pull request #1155 from roncli/dependabot/npm_and_yarn/node-roncli-com/googleapis/calendar-9.4.0
Merge pull request #859 from overload-development-community/dependabot/npm_and_yarn/googleapis/calendar-9.4.0
Merge pull request #1147 from roncli/dependabot/docker/node-ronc-li/node-20.10.0-alpine
Merge pull request #1044 from roncli/dependabot/docker/node/node-20.10.0-alpine
Merge pull request #1146 from roncli/dependabot/docker/logging/node-20.10.0-alpine
Merge pull request #1043 from roncli/dependabot/docker/logging/node-20.10.0-alpine
Merge pull request #1145 from roncli/dependabot/docker/node-roncli-com/node-20.10.0-alpine
Merge pull request #851 from roncli/dependabot/docker/logging/node-20.10.0-alpine
Merge pull request #850 from roncli/dependabot/docker/node/node-20.10.0-alpine
Merge pull request #1144 from roncli/dependabot/docker/mariadb/mariadb-11.2.2
Actually fix $HTTP_ONLY.
Fix $HTTP_ONLY comparison.
Version 3.1.0.
Merge pull request #652 from overload-development-community/dependabot/docker/logging/node-20.10.0-alpine
Merge pull request #651 from overload-development-community/dependabot/docker/node/node-20.10.0-alpine
Complete new search function.
Merge pull request #643 from overload-development-community/dependabot/npm_and_yarn/node/mongodb-6.3.0
Merge pull request #851 from overload-development-community/dependabot/npm_and_yarn/mathjs-12.1.0
Merge pull request #1034 from roncli/dependabot/npm_and_yarn/node/mongodb-6.3.0
Version 2.1.17.
Updates required for latest editorjs.
Merge pull request #1134 from roncli/dependabot/npm_and_yarn/node-ronc-li/mongodb-6.3.0
Merge pull request #1136 from roncli/dependabot/npm_and_yarn/node-roncli-com/mongodb-6.3.0
Merge pull request #105 from roncli/dependabot/npm_and_yarn/types/node-20.9.1
Merge pull request #641 from overload-development-community/dependabot/docker/node/node-20.9.0-alpine
Merge pull request #640 from overload-development-community/dependabot/docker/logging/node-20.9.0-alpine
Merge branch 'main' of ssh://github.com/overload-development-community/tracker.otl.gg
Allow upgrade to node v20.
Version 2.1.16.
Version 2.3.6.
Version 2.0.15.
Merge pull request #1032 from roncli/dependabot/docker/logging/node-20.9.0-alpine
Merge pull request #1031 from roncli/dependabot/docker/node/node-20.9.0-alpine
Create dependabot.yml
Delete .github/dependabot.yml
Update Node LTS in dependabot.
Revert "Update Node LTS in dependabot."
Manually update @types/multer to v1.4.10.
Updates required for ol v8.2.0.
Merge pull request #1119 from roncli/dependabot/npm_and_yarn/node-roncli-com/ol-8.2.0
Merge pull request #1122 from roncli/dependabot/npm_and_yarn/node-roncli-com/editorjs/quote-2.6.0
Merge pull request #1121 from roncli/dependabot/npm_and_yarn/node-roncli-com/discord.js-14.14.1
Merge pull request #841 from roncli/dependabot/docker/logging/node-20.9.0-alpine
Merge pull request #1117 from roncli/dependabot/docker/logging/node-20.9.0-alpine
Merge pull request #1118 from roncli/dependabot/docker/node-ronc-li/node-20.9.0-alpine
Merge pull request #1115 from roncli/dependabot/docker/node-roncli-com/node-20.9.0-alpine
Merge pull request #839 from roncli/dependabot/docker/node/node-20.9.0-alpine
Update Node LTS in dependabot.
Update Node LTS in dependabot.
Merge branch 'main' of github.com:roncli/six.gg
Update Node LTS in dependabot.
Version 1.0.17.
Version 1.2.1.
Merge pull request #1041 from roncli/dependabot/npm_and_yarn/node-roncli-com/monaco-editor-0.44.0
Merge pull request #104 from roncli/dependabot/npm_and_yarn/types/html-minifier-4.0.5
Merge pull request #840 from overload-development-community/dependabot/npm_and_yarn/terser-5.24.0
Merge pull request #1025 from roncli/dependabot/npm_and_yarn/logging/applicationinsights-2.9.1
Merge pull request #291 from roncli/dependabot/npm_and_yarn/applicationinsights-2.9.1
Merge pull request #838 from roncli/dependabot/npm_and_yarn/logging/applicationinsights-2.9.1
Merge pull request #102 from roncli/dependabot/npm_and_yarn/types/express-session-1.17.10
Merge pull request #1097 from roncli/dependabot/npm_and_yarn/node-roncli-com/megalodon-9.1.1
Merge pull request #850 from overload-development-community/dependabot/npm_and_yarn/azure/identity-3.4.1
Merge pull request #565 from roncli/dependabot/npm_and_yarn/discord.js-14.14.1
Merge pull request #1026 from roncli/dependabot/npm_and_yarn/node/discord.js-14.14.1
Merge pull request #849 from overload-development-community/dependabot/npm_and_yarn/discord.js-14.14.1
Merge pull request #1110 from roncli/dependabot/npm_and_yarn/logging/applicationinsights-2.9.1
Merge pull request #635 from overload-development-community/dependabot/npm_and_yarn/logging/applicationinsights-2.9.1
Merge pull request #837 from roncli/dependabot/npm_and_yarn/node/applicationinsights-2.9.1
Merge pull request #1052 from roncli/dependabot/npm_and_yarn/logging/dockerode-4.0.0
Merge pull request #600 from overload-development-community/dependabot/npm_and_yarn/logging/dockerode-4.0.0
Merge pull request #299 from roncli/dependabot/npm_and_yarn/terser-5.24.0
Merge pull request #979 from roncli/dependabot/npm_and_yarn/logging/dockerode-4.0.0
Merge pull request #1091 from roncli/dependabot/npm_and_yarn/node-ronc-li/mongodb-6.2.0
Merge pull request #808 from roncli/dependabot/npm_and_yarn/logging/dockerode-4.0.0
Merge pull request #103 from roncli/dependabot/npm_and_yarn/types/node-20.9.0
Merge pull request #101 from roncli/dependabot/npm_and_yarn/types/express-4.17.21
Merge pull request #555 from roncli/dependabot/npm_and_yarn/terser-5.24.0
Merge pull request #837 from overload-development-community/dependabot/npm_and_yarn/mathjs-12.0.0
Merge pull request #1001 from roncli/dependabot/npm_and_yarn/node/mongodb-6.2.0
Merge pull request #615 from overload-development-community/dependabot/npm_and_yarn/node/mongodb-6.2.0
Merge pull request #1088 from roncli/dependabot/npm_and_yarn/node-roncli-com/mongodb-6.2.0
Merge pull request #1084 from roncli/dependabot/npm_and_yarn/node-roncli-com/googleapis/youtube-13.0.0
Reduce error logging when failing to save pilot files due to missing write permissions
Merge pull request #319 from luponix/fix/read-only-config-files
Fix bug with Cyclone spinup on Linux servers.
Attempt to better catch unhandled promises.
Share This Page
Social Media
Ronald M. Clifford
@roncli @mastodon.social

Just a note to everyone out there who still believes 2020 hasn't ended that today is Unquinquaginember 21st, 2020.

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Burritos can be used for bribing if necessary. 🌯 :)

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

@shanselman Who at Microsoft do I have to bribe to fix ADO so that those of us on dark mode who copy/paste text from one task to another can do so without our friends on light mode seeing dark text on a dark background?

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

I updated the blog post with a statement from Revival. While I'm not particularly happy with Revival's decision, I understand their motives. It's just a shame that it was someone from Interplay that had to go and do this. "By games for gamers" my ass.

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Damn, got another Tetris world record! This time in the arcade variant developed by Atari. 6,008,005 points, 5,386 lines, round 363. Be warned, it's nearly FIVE HOURS. twitch.tv/videos/2131759212

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

I certainly didn't have "Overload but with web3 features" on my 2024 bingo card. WTF did Revival Productions just do?

roncli.com/blogger/39495275106

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

@solitha New rule: cat tax. For every pun you post or repost, you're now required to pay the tax of posting one cute cat video.

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Today was a special day. I scored 1,016,221 points in classic NES Tetris, the first time I broke the 999,999 maxout barrier.

With that maxout, I became the oldest person to get their first ever maxout at 46 years 319 days.

After I scored that, I learned that today would have been 7-time Tetris world champion Jonas Neubauer's 43rd birthday.

I am FILLED with incredible emotion tonight.

clips.twitch.tv/AverageImporta

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

"I'm Sorry, What?!" The biggest bailout in the history of Descent II! youtube.com/watch?v=GLlTk7wa59

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

β€œBART anime merch" are three words that I would not have expected to go together, but here we are. railgoods.com/bart/anime/

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Does anyone else sing the chorus to "Cherish" by Kool & The Gang to themselves whenever they play or watch streams of Balatro? Or is that just me?

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

I'm fact that's what Lingo needs: a "phone" block. The clue is an incorrect autocorrected form of the answer. πŸ™ƒ

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

It's like my phone knows I've been playing Lingo. I typed in "exited" and my phone was all:

⬜️ EXCITED ------
β–ͺ️
β–ͺ️

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

@arborelia Bag-les.

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

A comparison of the classic Tetris and Descent communities. Not a post I write lightly, either.

roncli.com/blogger/37031578090

Reply Boost Favorite
martin
@luftlesen @mstdn.jp

Aptiz played #Pentis again. In the beginning you can see roncli asking in the chat for the right version. About an hour later, he broke the #PentisRankings record with 60K ! Congratulations roncli πŸ† πŸŽ‰
twitch.tv/videos/2052528360?sr

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Yeah, it's season 11. But the OTL Season 6 highlight reel is up, this time Fireball has taken the reins! Check out this video jam packed full of kills, deaths, silliness, and Sirius puns. youtube.com/watch?v=SXstLVjnaG

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Over on , someone retweeted sympathy for the people being laid off today...

...and then said that Amazon Games was hiring. You know, the one that just had layoffs in NOVEMBER.

Honestly? Tech sucks right now.

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Seriously. Why is it called Sagittarius, A Star? Clearly, it's Sagittarius, A Black Hole. Silly astronomers.

Reply Boost Favorite
Cultural Historian: Dr. RGST
@DrRGST @mastodon.social
Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

This eslint/stylistic breakup is going to give me a headache. Don't developers have something better to do than give other developers busywork?

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Bing is so bad. otl.gg is being blocked in their search results, and Bing webmaster tools are absolutely useless, not telling me why it's being blocked.

Does anyone know of some way to get a human to look at this and see what's wrong with it?

Reply Boost Favorite
Olivia W'
@WLivi @retro.pizza

it's not actually common for real hackers to use two keyboards at once; that's just a stereo type.

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

I got my wish. πŸ€’

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Me and my wife, despite buying a house of nice size, always seem to get in each other's way, be it in the kitchen, on the stairs, it doesn't matter. She's all up in my two square feet.

I often joke that all I want for Christmas is my two square feet.

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Update 2: The record that beat Blue Scuti stood for one day. Blue Scuti got it back.

Reply Boost Favorite
πŸŒͺ MikeMathia.com πŸ“‘
@mikemathia @ioc.exchange

#C++

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Update: This record stood for 1 day.

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

I got the honor and privilege of calling the NES Tetris NTSC world record today while running Classic Tetris Wars on my Twitch channel for the very first time. It was thrilling. Congratulations to Blue Scuti for his 6,609,220 level 153 performance. clips.twitch.tv/DiligentDeadGo

Reply Boost Favorite
Yogthos
@yogthos @mas.to
Reply Boost Favorite
TwistBit
@TwistBit @musicians.today

like, you used to use a phone line to access the internet

now the internet is accessible on your phone

nothing has changed actually

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Six Degrees of Sunday returns Sunday, January 7th, at twitch.tv/roncli. Cya there!

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Are you ready to get Six'd Off?

Six Degrees of Sunday, my 6DoF long play Twitch series, is getting revived for 2024. Plus, I will be producing Six'd Off, a companion YouTube series showcasing each game.

Check out the announcement for the game list and more! youtube.com/watch?v=yeRbjjpQVZ

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

So I started a fresh YouTube channel some time ago, and yesterday I released the first real video to it.

Check out highlights from Argus Industrial Moons' run to the OTL Season 10 Best of the Rest title! youtube.com/watch?v=Z2x-GGW9FY

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

I guess that qualifies as a "log"...

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

People at work are calling Kubernetes K8, and I hate it. It's not "Kubernete"!

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Want a preview of what CTWC will be like next weekend from a gameplay perspective? CTL Season 22 finals starting now.

twitch.tv/classictetrisleague

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

No airport hell this morning, but you know that lady that talks about security at literally every airport? I just realized, she sounds old AF.

Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

If this security line posted signs "5 minutes from this point", "10 minutes...", etc., They'd have to post them every foot.

Reply Boost Favorite
Join roncli on Discord!
Join the roncli Gaming Discord server for discussion about gaming, development, and more!
roncli.com Media Player