Skip to content

Instantly share code, notes, and snippets.

@royratcliffe
royratcliffe / config.txt
Last active January 23, 2025 19:23
raspberrypi
# https://www.waveshare.com/wiki/2-CH_CAN_HAT+
dtparam=spi=on
dtoverlay=i2c0
dtoverlay=spi1-3cs
dtoverlay=mcp2515,spi1-2,oscillator=16000000,interrupt=13
dtoverlay=mcp2515,spi1-1,oscillator=16000000,interrupt=22
@royratcliffe
royratcliffe / Kbuild
Last active March 7, 2025 13:02
kbuild
obj-m += foo.o
@royratcliffe
royratcliffe / 80-can.link
Last active January 16, 2025 07:43
Infineon AURIX
@royratcliffe
royratcliffe / foo.py
Last active November 21, 2024 14:30
Python
if IS_WINDOWS:
import os
os.environ['PATH'] += ';' + os.path.dirname(__file__)
cmake_minimum_required(VERSION 3.25)
project(polyinterp)
add_executable(polyinterp polyinterp.cpp)
@royratcliffe
royratcliffe / uniq.lua
Last active April 28, 2024 15:42
Unique Lua Pairs
--- Unique pairs.
-- @module uniq
-- @author Roy Ratcliffe <[email protected]>
-- @copyright 2023, 2024
-- @license MIT
local _M = {}
local unpack = table.unpack or unpack -- Lua 5.1 compatibility
--- Answers the next index and unique value.
-- See [Semantics of the Generic `for`](https://www.lua.org/pil/7.2.html) for
@royratcliffe
royratcliffe / devcontainer.json
Last active April 22, 2024 10:53
nordic-semiconductor.nrf-connect
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
{
"name": "Ubuntu",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/base:jammy",
// Features to add to the dev container. More info: https://containers.dev/features.
"features": {
"ghcr.io/rocker-org/devcontainer-features/apt-packages:1": {
{
"image": "mcr.microsoft.com/devcontainers/universal:2",
"features": {
"ghcr.io/rocker-org/devcontainer-features/rstudio-server:0": {},
"ghcr.io/meaningful-ooo/devcontainer-features/homebrew:2": {}
}
}
#include <cassert>
/*!
* \brief True if the first string ends with the second string.
* \param ends String with some required ending for which to test.
* \param with Ending to test the first string against.
*/
bool ends_with(const std::string &ends, const std::string &with) {
return ends.length() >= with.length() &&
ends.compare(ends.length() - with.length(), with.length(), with) == 0;
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",