Skip to content

Instantly share code, notes, and snippets.

@barbietunnie
barbietunnie / read-parquet-with-duckdb.md
Created November 15, 2024 12:39
How to read Parquet files with DuckDB

How to read Parquet files with DuckDB

  • Create a new DuckDB in-memory connection using DBeaver, specifying the path as :memory:

  • Create a new script to run your query with, using the connection created

    SELECT * FROM parquet_schema('/path/to/parquet/file.parquet');
    
    SELECT * FROM read_parquet('/path/to/parquet/file.parquet');
    
@barbietunnie
barbietunnie / apt_pkg_error_fix.md
Created September 1, 2024 19:23
Unable to install or update any libraries ModuleNotFoundError: No module named 'apt_pkg'

How to resolve the error "Unable to install or update any libraries ModuleNotFoundError: No module named 'apt_pkg'" on Ubuntu

The issue can be resolved by uninstalling and installing the python3-apt package

sudo apt remove python3-apt

sudo apt install python3-apt
@barbietunnie
barbietunnie / install-mysqlclient-ubuntu-22.md
Created July 17, 2024 11:56
Install `mysqlclient` with pip on Ubuntu 22

Install mysqlclient with pip on Ubuntu 22

Without installing pkg-config before attempting to install mysqlclient on Ubuntu 22 fails and subsequently breaks apt-pkg.

To install it without issues, run the following commands:

sudo apt install pkg-config
pip install mysqlclient
@barbietunnie
barbietunnie / redshift-notes.md
Last active September 23, 2024 10:41
Redshift Notes

Redshift Notes

1. Find dependent objects for a table or view in Postgresql or Redshift

SELECT dependent_ns.nspname as dependent_schema
, dependent_view.relname as dependent_view 
, source_ns.nspname as source_schema
, source_table.relname as source_table
, pg_attribute.attname as column_name
@barbietunnie
barbietunnie / postgres-privileges.md
Last active March 21, 2024 14:50
Granting privileges in Postgres

Granting privileges in Postgres

Steps

Below are some common ways to grant access to a PostgreSQL user:

  1. Grant CONNECT to the database:
GRANT CONNECT ON DATABASE database_name TO username;

Grouping results and removing unwanted ones

Here we want to scrape product name, price and rating from ebay product pages:

url = 'https://www.ebay.com/itm/Sony-PlayStation-4-PS4-Pro-1TB-4K-Console-Black/203084236670' 

wanted_list = ['Sony PlayStation 4 PS4 Pro 1TB 4K Console - Black', 'US $349.99', '4.8'] 

scraper.build(url, wanted_list)
@barbietunnie
barbietunnie / README.md
Created February 5, 2024 14:05 — forked from liviaerxin/README.md
FastAPI and Uvicorn Logging #python #fastapi #uvicorn #logging

FastAPI and Uvicorn Logging

When running FastAPI app, all the logs in console are from Uvicorn and they do not have timestamp and other useful information. As Uvicorn applies python logging module, we can override Uvicorn logging formatter by applying a new logging configuration.

Meanwhile, it's able to unify the your endpoints logging with the Uvicorn logging by configuring all of them in the config file log_conf.yaml.

Before overriding:

uvicorn main:app --reload
@barbietunnie
barbietunnie / lets-encrypt-ubuntu-with-certbot.md
Created December 14, 2023 10:29
How to Install Let's Encrypt SSL on Ubuntu with Certbot

How to Install Let's Encrypt SSL on Ubuntu with Certbot

Install snapd

The apt version of certbot is usually not up-to-date, so it's preferable to install it with snap.

sudo systemctl status snapd
@barbietunnie
barbietunnie / docker-scout-notes.md
Last active November 19, 2023 06:48
Docker Scout CLI notes

Docker Scout CLI notes

1. Analyze local files

  • Get an at-a-glance vulnerability summary of the source code in the current working directory

    docker scout quickview fs://.
    
  • View the details of vulnerabilities found in your local source code

@barbietunnie
barbietunnie / dependent-objects-postgresql-redshift.md
Last active November 2, 2023 11:47
Find dependent objects for a table or view in Postgresql or Redshift

Find dependent objects for a table or view in Postgresql or Redshift

SELECT dependent_ns.nspname as dependent_schema
, dependent_view.relname as dependent_view 
, source_ns.nspname as source_schema
, source_table.relname as source_table
, pg_attribute.attname as column_name
FROM pg_depend 
JOIN pg_rewrite ON pg_depend.objid = pg_rewrite.oid