Skip to content

Instantly share code, notes, and snippets.

View ardabbour's full-sized avatar
😎
Working on the next big thing.

AR Dabbour ardabbour

😎
Working on the next big thing.
View GitHub Profile
@ardabbour
ardabbour / git-recursive.sh
Created May 11, 2022 12:56
Executes a given command recursively on every git repository found under a given directory.
#!/usr/bin/env bash
# -*- coding: utf-8 -*-
###
# git-recursive
#
# This script will execute a given command recursively on every git repository
# found under the current directory.
#
# Copyright 2022 Abdul Rahman Dabbour
@ardabbour
ardabbour / .dockerignore
Created June 9, 2021 21:09
A starting point for a ROS dockerignore file
## C++
# ----------------------------------------------------------------------------
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
@ardabbour
ardabbour / melodic.dockerfile
Last active June 9, 2021 21:23
A starting point for ROS melodic project Dockerfiles
FROM ros:melodic
ENV NVIDIA_VISIBLE_DEVICES \
${NVIDIA_VISIBLE_DEVICES:-all}
ENV NVIDIA_DRIVER_CAPABILITIES \
${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics
# Add essential tools
RUN apt-get update && apt-get install --no-install-recommends -y \
apt-transport-https \
@ardabbour
ardabbour / .clang-format
Created June 9, 2021 21:04
Clang Format configuration for ROS projects, from MoveIt!'s repository
BasedOnStyle: Google
ColumnLimit: 120
MaxEmptyLinesToKeep: 1
SortIncludes: true
Standard: Auto
IndentWidth: 2
TabWidth: 2
UseTab: Never
AccessModifierOffset: -2
@ardabbour
ardabbour / .clang-tidy
Created June 9, 2021 21:03
Clang Tidy configuration for ROS projects, from MoveIt!'s repository
Checks: '-*,
performance-*,
llvm-namespace-comment,
modernize-redundant-void-arg,
modernize-use-nullptr,
modernize-use-default,
modernize-use-override,
modernize-loop-convert,
readability-named-parameter,
readability-redundant-smartptr-get,
@ardabbour
ardabbour / cccm.py
Last active December 3, 2021 13:10
Merges compile_command.json spread across multiple packages under a catkin workspace for debugging using llvm tools.
#!/usr/bin/env python3
"""
Copyright 2021 Abdul Rahman Dabbour
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
@vasanthk
vasanthk / System Design.md
Last active June 27, 2024 01:45
System Design Cheatsheet

System Design Cheatsheet

Picking the right architecture = Picking the right battles + Managing trade-offs

Basic Steps

  1. Clarify and agree on the scope of the system
  • User cases (description of sequences of events that, taken together, lead to a system doing something useful)
    • Who is going to use it?
    • How are they going to use it?