Skip to content

Instantly share code, notes, and snippets.

View medhatdawoud's full-sized avatar

Medhat Dawoud medhatdawoud

View GitHub Profile
@medhatdawoud
medhatdawoud / zen-to-html-bookmarks.py
Created May 30, 2026 23:28
Export Zen browser workspaces to Chrome-importable HTML bookmarks
#!/usr/bin/env python3
"""
Export Zen browser workspaces to Chrome-importable HTML bookmarks.
Each workspace becomes a bookmark folder; all tabs become bookmarks inside.
Usage:
python3 zen-to-html-bookmarks.py [output.html]
Requires: lz4 (pip install lz4)
"""
@medhatdawoud
medhatdawoud / arc-to-chrome-bookmarks.py
Last active May 30, 2026 22:14
Convert Arc browser spaces to Chrome bookmark folders (with pinned tabs). Run with --html flag to generate importable HTML.
#!/usr/bin/env python3
"""
Convert Arc browser spaces to Chrome bookmark folders.
Each space becomes a bookmark folder; pinned tabs become bookmarks inside.
Run before launching Chrome for the first time on a new machine.
"""
import json
import os
import re
{
"extends": "./tsconfig.paths.json",
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"jsx": "preserve",
"module": "esnext",
"moduleResolution": "node",
"noFallthroughCasesInSwitch": true,
"noImplicitReturns": true,
const webpack = require('webpack');
const { identity } = require('lodash');
const TerserPlugin = require('terser-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
const path = require('path');
const cssVariables = require('../../../css/css-variables.js');
const config = require('../../config');
const inlineRegex = /inline\.(js|jsx|ts|tsx)$/;
@medhatdawoud
medhatdawoud / rules-to-write-better-commit-messages.md
Last active August 3, 2025 16:27
This gist is the summary of a video on YouTube [in Arabic] you can watch from here: https://youtu.be/BTlL-LBDCSI

Rules to write a better commit message

These are my preferences for a good commit message, feel free to fork this gist and add your own standards, or add comment here to share yours with the community.

1. Include only the files related to the feature you are implementing:

  • Don't add any file that is not related to the main issue, you can make it in a separate commit.
  • Separating files that not related is important in the revert cases.
  • Revise the whole changes always before committing and make sure to mention each change you made in the message.

2. Commit subject should be concise and reflect the essence of the commit:

  • Imagine the commit as an Email to the owner or your team mates.
  • Subject in the first and main sentence of the commit, it should be concise and to the point.
  • It shouldn't exceed 50 char.