Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-links
https://github.com/pmariman/awesome-links
- Dan Gitschooldude
- Comparing Workflows
- Git fast forwards and branch management
- Git Branching - Rebasing
- Git team workflows: merge or rebase?
- CI/CD Tools Comparison: Jenkins, GitLab CI, Buildbot, Drone, and Concourse
- Gitlab CI/CD Deep Dive Demo
- GitLab CI/CD Pipeline Configuration Reference
- Gitlab CI/CD Building Docker images
- Gitlab CI/CD Cache dependencies
- ITT 2016 - Kevlin Henney - Seven Ineffective Coding Habits of Many Programmers
- Concurrency vs Event Loop vs Event Loop + Concurrency
- 10 Typical Mistakes in Specs
- Designing for safety and security in a connected system
- Robert C Martin - Clean Architecture and Design
- Building highly decoupled systems in Python (Ryan Easterbrook)
- Rob Pike - 'Concurrency Is Not Parallelism'
- Understanding a Real-Time System by Steven Rostedt
- C Keywords
- const and static keywords
- Low Level Operators and Bit Fields
- Seventeen steps to safer C code
- Does GCC's __attribute__((__packed__)) retain the original ordering?
- Is gcc's __attribute__((__packed__)) / #pragma pack unsafe?
- Reentrancy
- Table-driven State Machine using function pointers in C
- Implementing Efficient State Machines
- Some obscure C features you might not know about
- Making C Less Dangerous - Kees Cook, Google
- Memory Management Reference
- How does the kernel implements Linked Lists?
- Learn a new trick with the offsetof() macro
- The Magical container_of() Macro
- Debugging with GDB
- awesome-c list
- C Language Style for Scalability
- So You Want To Be An Embedded Systems Developer
- Embedded Systems Wikibook
- Free online course on Embedded Systems
- MCU Programming: Basics
- Introduction to Microcontrollers - Beginnings
- 8 pillars of embedded software
- RTOS or bare metal - five decisive factors
- Mastering stack and heap for system reliability: Part 1 – Calculating stack size
- Interrupts short and simple (1)
- Interrupts short and simple (2)
- Interrupts short and simple (3)
- Embedded device driver design: Interrupt handling
- Endianness
- Little and Big Endian Mystery
- Using pointer arrays: Part 1 - A timer driver
- An introduction to function pointers: Part 1
- Build a Super Simple Tasker
- RTOS Revealed
- Real-time Systems
- Multitasking on an AVR
- Mutexes and Semaphores Demystified
- Use Threads Correctly = Isolation + Asynchronous Messages
- Prefer Using Active Objects Instead of Naked Threads
- How to Use C's volatile Keyword
- Volatile: The Multithreaded Programmer's Best Friend
- ARM Cortex-M Interrupts
- 100% Open-Source Development for the Cortex-M by Mike Anderson
- Everything You Need to Know About the Internet of Things
- Sustaining IoT growth
- IoT Security – Cyberspeak 101
- Architectural considerations for enabling industrial IoT devices
- Tutorial: Building the Simplest Possible Linux System - Rob Landley
- A book-in-progress about the linux kernel and its insides
- What Stable Kernel Should I Use?
- Introduction to Memory Management in Linux
- Introduction to Memory Management in Linux by Alan Ott
- The TTY demystified
- A Brief Introduction to termios (1)
- A Brief Introduction to termios (2)
- Using pseudo-terminals (pty) to control interactive programs
- Evolution of shells in Linux
- Linux Filesystem Hierarchy
- Overview of RAMFS and TMPFS on Linux
- Linux From Scratch (LFS)
- LFS: Overview of Device and Module Handling
- Running an X server inside a Docker container
- Systemd Essentials: Working with Services, Units, and the Journal
- systemd for Administrators
- Understanding Systemd
- RedHat: Managing Services With systemd
- Demystifying systemd - 2015 Red Hat Summit
- The Iptables Firewall
- Firewall or Packet Filtering
- Iptables Tutorial
- 25 Iptables Netfilter Firewall Examples For New SysAdmins
- Zeroshell Linux Router
- VyOS: an open source linux-based os for routers and firewalls
- IPv6 for Embedded Developers used to IPv4
- User-space networking with Snabb
- Debian for Embedded Systems: Best Practices
- Debos
- Debian ArmHardFloatPort
- Custom Embedded Linux Distributions
- Cross-Bootstrap Fedora
- The end of embedded Linux (as we know it)
- Linux Board Porting Series - Module 3 - Linux Boot Process
- Anatomy of Cross-Compilation Toolchains
- Embedded Linux Size Reduction Techniques
- Demystifying Systemd for Embedded Systems
- Understanding a Real-Time System
- Introduction to Realtime Linux
- Modern deployment for Embedded Linux and IoT
- Choose the Right Communication Pattern for Your IoT Project
- Strengths and Weaknesses of IoT Communication Patterns
- Reference Manual
- Mega Manual
- Building BeagleBone Systems with Yocto
- Socket Programming in C
- Sockets Tutorial
- Asynchronous I/O and event notification on linux
- Non-Blocking accept()/connect()
- Nonblocking I/O
- Understanding Reactor Pattern: Thread-Based and Event-Driven
- Soft Real-Time Programming with Linux
- Over and over again: periodic tasks in Linux
- Using I2C from userspace in Linux
- Interfacing with I2C Devices
- IPC: Shared Memory
- Serial Programming Guide for POSIX Operating Systems
- Serial Programming HOWTO
- Shared Libraries: Understanding Dynamic Loading
- Library order in static linking
- Better understanding Linux secondary dependencies solving with examples
- LeMaker
- Khadas
- Router board (x86 based)
- IoT Gateway System
- SeedStudio NPi i.MX6ULL
- Tiny, rugged IoT gateways
- Linux powered panel PCs
- HPE Edgeline EL300 Converged Edge System
- How The Raspberry Pi Boots Up
- Understanding the Raspberry Pi Boot Process
- How does Raspberry Pi's boot loader work?
- Routing select traffic through a VPN using a systemd container
- Let's Encrypt: A Free, Automated, and Open Certificate Authority by Josh Aas
- Public URLs for exposing your local web server
- Understanding Nginx HTTP Proxying, Load Balancing, Buffering, and Caching
- Use NGINX as a Front-end Proxy and Software Load Balancer
- Introduction to modern network load balancing and proxying
- How To Configure Nginx with SSL as a Reverse Proxy for Jenkins
- OpenSSL Essentials: Working with SSL Certificates, Private Keys and CSRs
- Creating a Self-Signed SSL Certificate
- Why Go Is Successful (aka Simplicity is Complicated)
- Building a Bank with Go
- CNCF
- CNCF Landscape
- Building Better Containers: A Survey of Container Build Tools
- Monitoring, the Prometheus Way
- End-to-end monitoring with the Prometheus Operator
- Deploy code faster: with CI/CD and Kubernetes
- Kubernetes Playground
- Project Atomic
- RancherOS
- Traefik
- Caddy - The HTTP/2 Web Server with Automatic HTTPS
- An overview of Project Atomic
- Containers without Docker at Red Hat
- DigitalRebar Provision deploy Docker's LinuxKit Kubernetes
- Harbor
- Docker Data Containers
- Day in the Life: Docker Networking
- Cgroups, namespaces, and beyond: what are containers made from?
- Podman
- How Linux containers have evolved
- Buildah
- WolfSSL Manual - Chapter 11: SSL Tutorial
- An Intro to IoT Protocols: MQTT, CoAP, HTTP & WebSockets
- Comparing Messaging Techniques for the IoT - Michael E Anderson, The PTR Group, inc.
- Mighty Messaging Patterns
- A Quick Guide to Understanding IoT Application Messaging Protocols
- MQTT Essentials
- NATS: A Central Nervous System for IoT Messaging
- Introducing Liftbridge: Lightweight, Fault-Tolerant Message Streams
- A Look at Nanomsg and Scalability Protocols (Why ZeroMQ Shouldn’t Be Your First Choice)
- ZeroMQ: Diving into the Wire
- gRPC and Go: Developing Efficient and Type-Safe Services - Clinton Kitson
- How to get better at the things you care about
- Are you a giver or a taker?
- How to speak up for yourself
- Your body language may shape who you are
- How to speak so that people want to listen
- Inside the mind of a master procrastinator
- The surprising habits of original thinkers
- Where good ideas come from
Programming Languages