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 Releases

* New advanced search capabilities.
* Package updates.
* Package updates.
* Package updates.
* Package updates.
* Package updates.
- Cyclone spin up now starts at step 4 out of 8 by default, getting to full speed faster. This is modifyable using the m_spinup_starting_time variable in projdata under the proj_vortex section, acceptable values are integers between 0 and 8. (Thanks, Tobias!)
* Reduce search to one page for now until a more advanced search is created.
* Package updates.
* Don't fail on websocket errors with no reason from Twurple.
* Package updates.
* Package updates.
* Package updates.
* Package updates.
* All file paths must now start with a forward slash. Not doing so results in the middleware not returning anything.

Latest Commits

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.
Merge pull request #541 from roncli/dependabot/npm_and_yarn/terser-5.22.0
Merge pull request #589 from overload-development-community/dependabot/docker/certbot/certbot/certbot-v2.7.0
Merge pull request #1037 from roncli/dependabot/docker/certbot/certbot/certbot-v2.7.0
Merge pull request #795 from roncli/dependabot/docker/certbot/certbot/certbot-v2.7.0
Merge pull request #971 from roncli/dependabot/docker/certbot/certbot/certbot-v2.7.0
Merge pull request #532 from roncli/dependabot/npm_and_yarn/terser-5.21.0
Merge pull request #285 from roncli/dependabot/npm_and_yarn/terser-5.21.0
Merge pull request #816 from overload-development-community/dependabot/npm_and_yarn/terser-5.21.0
Merge pull request #88 from roncli/dependabot/npm_and_yarn/types/node-20.8.2
Add search. Still untested and needs some extra CSS support.
Add HTTP_ONLY option, and default the local docker-compose file to use it.
Version 0.5.11.
Version 0.5.11.
Add migration to update indexes.
Remove unnecessary dependencies.
Remove current search page.
Merge pull request #1028 from roncli/dependabot/npm_and_yarn/node-roncli-com/megalodon-8.1.0
Merge pull request #1010 from roncli/dependabot/docker/node-ronc-li/node-18.18.0-alpine
Merge pull request #945 from roncli/dependabot/docker/logging/node-18.18.0-alpine
Merge pull request #581 from overload-development-community/dependabot/npm_and_yarn/logging/applicationinsights-2.8.0
Merge pull request #271 from roncli/dependabot/npm_and_yarn/applicationinsights-2.8.0
Merge pull request #788 from roncli/dependabot/npm_and_yarn/node/applicationinsights-2.8.0
Merge pull request #1027 from roncli/dependabot/npm_and_yarn/logging/applicationinsights-2.8.0
Merge pull request #787 from roncli/dependabot/npm_and_yarn/logging/applicationinsights-2.8.0
Merge pull request #959 from roncli/dependabot/npm_and_yarn/logging/applicationinsights-2.8.0
Merge pull request #805 from overload-development-community/dependabot/npm_and_yarn/mathjs-11.11.1
Merge pull request #522 from roncli/dependabot/npm_and_yarn/terser-5.20.0
Merge pull request #570 from overload-development-community/dependabot/docker/logging/node-18.18.0-alpine
Merge pull request #568 from overload-development-community/dependabot/docker/node/node-18.18.0-alpine
Merge pull request #1008 from roncli/dependabot/docker/node-roncli-com/node-18.18.0-alpine
Merge pull request #776 from roncli/dependabot/docker/logging/node-18.18.0-alpine
Merge pull request #775 from roncli/dependabot/docker/node/node-18.18.0-alpine
Merge pull request #1007 from roncli/dependabot/docker/logging/node-18.18.0-alpine
Merge pull request #943 from roncli/dependabot/docker/node/node-18.18.0-alpine
Merge pull request #804 from overload-development-community/dependabot/npm_and_yarn/azure/arm-compute-21.2.0
Merge pull request #80 from roncli/dependabot/npm_and_yarn/types/html-minifier-4.0.3
Merge pull request #571 from overload-development-community/dependabot/npm_and_yarn/node/terser-5.20.0
Merge pull request #277 from roncli/dependabot/npm_and_yarn/terser-5.20.0
Merge pull request #807 from overload-development-community/dependabot/npm_and_yarn/terser-5.20.0
Merge pull request #84 from roncli/dependabot/npm_and_yarn/types/express-session-1.17.8
Merge pull request #82 from roncli/dependabot/npm_and_yarn/types/express-4.17.18
Merge pull request #85 from roncli/dependabot/npm_and_yarn/types/node-20.7.0
Merge pull request #77 from roncli/dependabot/npm_and_yarn/node-database-v1.2.15
Updates required for twurple v7.
Remove all references to the Tumblr consumer secret.
Remove tumblr consumer secret.
Version 3.0.6.
Do not allow more than one page of results for full text search.
Merge pull request #559 from overload-development-community/dependabot/npm_and_yarn/node/mongodb-6.1.0
Merge pull request #556 from overload-development-community/dependabot/npm_and_yarn/node/roncli/node-minify-v1.2.0
Version 2.1.15.
Updates required for tumblr.js v4.
Updates required for ol v8.1.0.
Merge pull request #968 from roncli/dependabot/npm_and_yarn/node-roncli-com/tumblr.js-4.0.1
Merge pull request #997 from roncli/dependabot/npm_and_yarn/node-roncli-com/roncli/node-minify-v1.2.0
Merge pull request #980 from roncli/dependabot/npm_and_yarn/node-roncli-com/ol-8.1.0
Merge pull request #995 from roncli/dependabot/npm_and_yarn/node-roncli-com/bootstrap-icons-1.11.0
Don't return a function if the value is not needed.
Merge branch 'main' of https://github.com/roncli/roncli.com
Fix typings.
Merge pull request #992 from roncli/dependabot/npm_and_yarn/node-roncli-com/mongodb-6.1.0
Merge pull request #989 from roncli/dependabot/npm_and_yarn/node-ronc-li/mongodb-6.1.0
Merge pull request #987 from roncli/dependabot/npm_and_yarn/node-roncli-com/monaco-editor-0.43.0
Merge pull request #986 from roncli/dependabot/npm_and_yarn/node-roncli-com/ws-8.14.1
Version 2.3.5.
Changes required for MongoDb v6.
Merge pull request #932 from roncli/dependabot/npm_and_yarn/node/mongodb-6.1.0
Merge pull request #933 from roncli/dependabot/npm_and_yarn/node/roncli/node-minify-v1.2.0
Merge pull request #914 from roncli/dependabot/npm_and_yarn/node/fullcalendar/list-6.1.8
Do the same for the bot chat.
Fix error with empty reason.
Version 2.0.14.
Version 1.0.16.
Update README.md
Version 1.2.15.
Merge pull request #98 from roncli/dependabot/npm_and_yarn/mssql-10.0.1
Version 1.2.0.
Don't allow any files that don't start with a slash.
Version 3.0.5.
Share This Page
Social Media
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
Ronald M. Clifford
@roncli @mastodon.social

I'm sorry, what?

Reply Boost Favorite
Robin Ward
@eviltrout @carpdiem.online
Reply Boost Favorite
Ronald M. Clifford
@roncli @mastodon.social

Did I miss Elon making another purchase? twitter.com/unity/status/17016

Reply Boost Favorite
Konstantinos Dimopoulos
@konstantinosd @mastodon.gamedev.place

That's a lovely free bundle of books for people interested in getting into games programming: fanatical.com/en/bundle/intern

#gamedev #book #free #programming

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

Use TypeScript they said. It'll be better they said.

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

If you know, you know.

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

@shanselman Speaking of Overload, here's something you may be interested in... recently, some community members released "Overload First Strike", a single player Overload campaign that is a complete remake of the original Descent First Strike campaign.

overloadmaps.com/overload-firs

It can work with just the original game, but it works best with "olmod" as it takes advantage of some of the features it provides: olmod.overloadmaps.com

Reply Boost Favorite
Scott Hanselman 👸🏽🐝🌮
@shanselman @hachyderm.io

@PossiblyMax @deepthaw ya and there are new remakes of Descent like Overload that are enhanced and there’s even hardware that Vic Putz made to make the Space Orb look like a controller with NO drivers. Works on all operating systems hanselman.com/blog/bringing-th

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

I don't know who wrote this, but MORE PATCH NOTES LIKE THIS PLEASE. 🤣

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

First OTL flag capture in 7 seasons, and it was a game winner. clips.twitch.tv/PeppyFitOrange

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

I could buy a nice amount of coffee with this!

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

Clearly mismanagement from the top. Their logo color doesn't even match their name!

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

Fucking creepy.

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

Studying business, it astounds me how every counterexample to good business practices is happening at Twitter.

I am convinced he's trying to make Twitter fail for some reason that will benefit him. I struggle to see what that reason could possibly be.

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

UHHH WHAT

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

Salesforce Tower, by way of The Avery.

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

On Bluesky, too, apparently. 🙃

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

Who the heck thought it was a good idea to let the intern do the release????

Reply Boost Favorite
niconiconi
@niconiconi @mk.absturztau.be

Q: Why do programmers code in dark mode?

A: Light attracts bugs.

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

Happy boom, bitches.

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

My Overload team is great.

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

It is scary how many Diablo IV players are naming themselves titles like "___ Trash" or "___ Rubbish".

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

These events are great fun, and hopefully in the coming year I can get back to doing what I enjoy in the streaming space. I don't have the biggest following when it comes to Twitch, but metrics and analytics don't matter to me, just getting to chat and having fun is enough!

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

Thanks to all who stopped by during the 24 hour stream! It was a lot of fun, and there were a lot of crazy moments! I said I probably wouldn't finish Tunic, but I've since learned I was on the 2nd to last major fight, so there's a chance I try to finish it off in the coming week.

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

We suffered in Eclipse, derusted in Noita, and zooped across the Crypt of the NecroDancer. Now it's time for something foxy. Tunic, the closing game of the 24 hour stream, is up next! twitch.tv/roncli

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

My 7th annual 24-hour birthday begins in about 10 minutes at 11 AM Pacific with 4 hours of Risk of Rain 2! Watch me struggle with Huntress Eclipse 7. :) twitch.tv/roncli

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

Me: Excuse me, kitty, but you are on my side of the bed, and I need to go to sleep.
Tibbers: MEOW!
Me: You're right, kitty, this is your side of the bed. I'm sorry. *enters bed, awkwardly adjusting around Tibbers*

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

I was today years old when I learned phones can read QR codes backwards. 🤯

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

This Saturday I'll be running my 7th annual 24 hour birthday stream! This year, you'll see Risk of Rain 2 Eclipse runs, Noita, Crypt of the NecroDancer deathless, and a blind run of Tunic!

It all starts Sat 6/10 11 AM Pacific time. Cya there! twitch.tv/roncli

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

Just found out I broke XIVAPI.js for web users. Oops, sorry about that. Their use case was using it on the client side, mine is server side, so I didn't catch it!

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

I'm concerned for this app's developer.

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

"CEO Satya Nadella cited economic conditions and an investment in artificial intelligence as he informed employees about the change."

If I had ever thought about working at Microsoft, I would no longer have those thoughts. Big tech clearly is not interested in taking care of its workers.

cnbc.com/2023/05/10/microsoft-

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