Categories
Uncategorized

How to Love Coding

Advice for Coders starting out

I’ve been writing code for the past 36 years. That’s a lot of code. Started at 6 years old, writing BASIC on an Apple IIe that my dad brought home. Then graduated to PASCAL, Visual BASIC, MS-DOS Batch and then Borland C and Java, moved to C++, Objective-C some C# and JavaScript, Python obviously, recently TypeScript, all the while learning the secrets of Bash, ZSH and PowerShell and other more obscure languages like Go, Rust and even Elixir, LISP and Lua. I’m probably forgetting many languages and coding “situations” I went through like MSSQL/TSQL/PLSQL and HTML, CSS of their kind and several other task-specific code-ish things. This is just to explain and show to you, junior coder, that coding (for real) is a lifetime pursuit. Just like my journey, you will hear similar things from just about any other lifetime programmer that you know.

Categories
Uncategorized

How to be an Employee

Advice for People Joining the Workforce

Working in the service of something bigger than yourself is a pillar of humanity. It enabled all riches and privileges we have in our world. It is how people have built society for eons. There’s no doubt today that being employed keeps you balanced, satiated and healthy (in a way). It’s the best tool to support yourself and others. But at the same time, it takes away many of your freedoms. Before we dive in, let’s set a few things straight.

At the core of employment stands a simple principle: An employer is hiring you for value you bring to the business which is less than the compensation they pay you. Get it? At the core of employment, the principle is that someone is getting bigger value from your work than what they pay you. No business ever, if it’s a well-functioning business driven by real metrics, will pay you more than the value you bring – otherwise they will either hire someone else for less or not hire at all. If you ever own a small business, you will learn this simple principle very quickly. No business is charity.

Categories
Uncategorized

How to Succeed

Advice for young graduates

Lots of bright young folks ask me “How do I get a good job?”, “How do I achieve success in this domain?”, “What should I do next?”, usually in the applied computer science or machine learning field. So, I thought I’d dispense some advice for all future advice seekers, and I may refer some people here, so I don’t have to repeat myself all that much. Although, feel free to come up and ask a question.

Graduating, from anywhere, is daunting. Going from a well understood environment where your achievements are precisely measured, into the world where, frankly, no one cares. You have to make up your own metrics, measure yourself up to them, set goals for yourself and have a roadmap and a timeline. There’s no “graduation” from life. You may think it’s retirement, but that would not only be wrong (since there’s life after retirement) it is also immensely subjective and domain specific. So, what metric would you choose? Money in the bank? Sq. ft of your home? Number of dependents? Assets? Papers published? Books read? Miles traveled? BMI? Social subscribers? See? It’s impossible to pick. It is foolish to pick. Don’t pick. Not right now at least.

Categories
cmake code graphics gui qt Stream video

URL/API Source OBS Plugin: Fetch Live Data in your Stream

If you’re a fan of OBS (Open Broadcaster Software), you may already be familiar with its vast library of plugins that enhance its functionality and provide added features. One such plugin that I recently developed is the URL API source plugin. This plugin allows you to fetch information from a URL and display it in your OBS stream. In this blog post, we will take a closer look at the source code for this plugin and understand how it works.

Categories
code machine learning programming Stream video

CleanStream OBS Plugin: Remove Filler Words with Whisper CPP

CleanStream OBS Plugin is a powerful tool that helps clean live audio streams from unwanted words, filler words, and profanities. Created in C++, this plugin can improve the quality of live streams while saving time and effort in post-processing. In this blog post, we will take a detailed walk-through of the code for my CleanStream OBS plugin, explaining how it is built and its core functionalities.

Categories
Music Software tips video

Tutorial: M-Audio Oxygen Pro Mini with Ableton

Have you recently purchased the M Audio Oxygen Pro mini and want to figure out how to use it with Ableton Live Lite 11? If so, you’re not alone! In this blog post, we will go over some of the essential functions and tips that I have learned while working with this keyboard.

Categories
code graphics machine learning opencv opengl programming video vision

Building an OBS Background Removal Plugin: A Walkthrough

In this blog post, we will take a closer look at the development of the OBS Background Removal Plugin, discussing its key components, functionalities, and the process behind building it. The plugin was created to address the need for virtual green screen and background removal capabilities in OBS (Open Broadcaster Software), a popular live streaming and recording software. With over 500,000 downloads and ongoing contributions from various developers, the OBS Background Removal Plugin has gained significant traction in the streaming community. Whether you’re interested in understanding how this plugin works or considering building a similar plugin yourself, this walkthrough will provide valuable insights.

Categories
cloud code javascript programming Web

AWS Lambda NodeJS Telegram Bot with Typescript, Serverless and DynamoDB

Sharing a bit of experience building a telegram bot with Serverless, AWS Lambda and TypeScript.

In this tutorial, we will explore how to build a simple Telegram bot using serverless with TypeScript and AWS Lambda. We’ll leverage the power of AWS services such as API Gateway and DynamoDB to create a highly scalable and efficient bot. While there are various tutorials available online, this guide aims to provide a more comprehensive and detailed approach. So, let’s dive in!

Categories
3d Augmented Reality graphics vision

Augmenting Images with Blender 3D 2.9x

augmenting KITTI image with a 3D car

Trying to demonstrate how to do data augmentation on the KITTI stereo dataset, I found myself diving (too deeply) into Blender 3D.

What I set out to do is add a 3D object to an unsuspecting image from the KITTI dataset, to show that one way to get more training data is by synthesizing. I just put a 3D object in front of an image (say a 3D plane with the image as the texture) and done ✅ – I’ve augmented the image. Turns out it needs a bit more of Blender trickery. This is the real reason for this post.

Categories
Uncategorized

OBS Plugin for Portrait Background Removal with ONNX SINet Model

Hi,

I’ve seen people request a plugin for OBS to remove background (aka Matting) from their camera input. It’s a standard in all video conferencing software today! I also was recording some screencasts with OBS with my video in the corner, and it became instantly obvious how much I need this feature in OBS… So I set out to create one.

Demo of working plugin