Skip to content

Instantly share code, notes, and snippets.

View kasir-barati's full-sized avatar
Dedicated to achieve his goals

Mohammad Jawad (Kasir) Barati kasir-barati

Dedicated to achieve his goals
View GitHub Profile
@kasir-barati
kasir-barati / buy-a -house.md
Created October 16, 2025 05:08
Buy a house in Germany

Property transfer tax (Grunderwerbsteuer)

@kasir-barati
kasir-barati / index.html
Created November 24, 2024 13:44
A simple demonstration of ExpressJS + CORS
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<script>
fetch("http://localhost:3000", {
@kasir-barati
kasir-barati / keyboard-layout
Created August 25, 2022 07:31
Add keyboard change layout. Currently just English to Persian
#!/bin/bash
setxkbmap -layout us,ir
setxkbmap -option 'grp:alt_shift_toggle'
@kasir-barati
kasir-barati / manjaro-apps
Last active August 25, 2022 09:51
My bash script to install necessary apps in Manjaro
# Upgrade and update
sudo pacman -Syu --noconfirm
# Install Git and config it
sudo pacman -S git
git config --global init.defaultBranch main
git config --global user.name "Kasir Barati"
git config --global user.email "kasir.barati@gmail.com"
@kasir-barati
kasir-barati / js-to-py.md
Last active July 1, 2022 04:36
A simple gist full of syntax translation between two God, JS and Python

comprehensions

const arr = [1,2,3];
arr.map(x => 2*x);
arr.filter(x => x % 2 == 0);
arr = [1,2,3]
[2*x for x in arr]
@kasir-barati
kasir-barati / vimrc
Created June 21, 2022 06:27
My customization for vim.
" set autoindent
" reload files when changed on disk, i.e. via `git checkout`
set autoread
" Fix broken backspace in some setups
set backspace=2
" see :help crontab
set backupcopy=yes
" yank and paste with the system clipboard
set clipboard=unnamed
" don't store swapfiles in the current directory
@kasir-barati
kasir-barati / README.md
Last active June 20, 2022 14:50
A simple script to emerges environment.ts file from .env file for an Angular app.

Some good notes:

  • With Angular you can store those information in the environment.ts files, but you need to commit them in the repository, and again, this is not what we want. If something is changing, you need to update them and in an Agile environment, you also need to pass Code Review, Test and many other steps to certify a “Done” ticket.
  • Keep in mind that in a Front End world, it is pretty much impossible to keep anything hidden from the final user (the code can always be inspected in any browser). For this reason, the use of secret keys and passwords in this world have to be considered very carefully and under a secure structure managed backend side.

Important possible improvements:

Please note that this script disclose too much data. You can filter them by using filter-env lib. In that case you can add a specific prefix to all of your envs. The other point is that this script uses the same env name as it is inside the .env file, so my suggestion to

@kasir-barati
kasir-barati / auto-generated-prisma-client.ts
Created May 1, 2022 13:14
Custom DTO for validating date
export const FlightRegionType: {
DOMESTIC: 'DOMESTIC',
INTERNATIONAL: 'INTERNATIONAL'
};
export const CabinClass: {
ECONOMY: 'ECONOMY',
BUSINESS: 'BUSINESS',
FIRST: 'FIRST'
};
@kasir-barati
kasir-barati / main.sh
Last active April 20, 2022 11:26
Postgresql: dump, restore, connect to it, etc
# Connect to postgres
PGPASSWORD="pass" psql -h localhost -p 5432 -U user -d db-name
# You can also use .pgpass, TBH it does not work in my experience. BTW this is much much safer from point of security - No track in terminal history.
touch ~/.pgpass
# Replace its values:
db_host:db_port:db_name:db_user:db_pass
# Dump from postgres
# Doc: https://www.postgresql.org/docs/14/app-pgdump.html
@kasir-barati
kasir-barati / app.module.ts
Created April 14, 2022 10:12
Global throttler, Throttler behind the proxy with custom message in nestjs
import { Module } from '@nestjs/common';
import { ThrottlerModule } from '@nestjs/throttler';
import { ThrottlerStorageRedisService } from 'nestjs-throttler-storage-redis';
import { AppService } from './service/app.service';
import { AppController } from './app.controller';
import { APP_GUARD } from '@nestjs/core';
import { GlobalThrottlerGuard } from './guards/global-throttler.guard';
@Module({