Storing and Querying JSON Data in PostgreSQL
2020-01-22
I recently started exploring how to store JSON data in a traditional relational database management system (RDBMS), rather than a dedicated form of JSON/document storage, like MongoDB. While I could write a lot more about the problems with MongoDB, that’s not what I want to do here. Instead, I want to focus primarily on how to store and query JSON in PostgreSQL. However, I should note that PostgreSQL is not the only RDBMS that supports JSON storage.…more
Invoking Shell Commands in C# Programs
2020-01-19
After extensive wrangling and experimentation, I finally have managed to successfully invoke external commands in C# programs, which I hope will make me a considerably more productive C# programmer. So without further ado, let’s dive into the nitty gritty details. Purpose First, you might ask: why would one need to do this? Ultimately, the potential to automate all sorts of things by invoking external commands inside a program are nearly limitless.…more
Migrating Data to the Cloud with Python
2020-01-16
In the past year, or so, I have been experimenting with writing my own custom ETL programs in Python. Among the functionality that I included was extracting data from a local Postgres database, and migrating to a Postgres database in the cloud. The Reasoning While I’m aware that platforms-as-a service (PaaS) like AWS, and Azure provide their own services for this. Nevertheless, I opted to implement my own solution for data migration(s).…more
What Makes a Good Programming Language?
2020-01-12
First, I should note that the is perhaps a somewhat loaded question, as different people will inevitably have different criteria, and priorities for the languages they choose to use. Therefore, you will get many different answers to this question, depending on who you ask. It is also equally important to ask: what makes a good programming language for a specific use case? A language that is ideal for say, building web applications is likely not going to be equally ideal for writing drivers and operating system kernels.…more