- Inkbird IBT-2X
- Inkbird IBT-4XS
- EasyBBQ FCCID: FCC ID 2AI4MPRO3 (SHENZHEN HYPERSYNES CO.,LTD Smart Wireless Thermometer PRO3)
- @ConnectTimeout: 60 seconds
- @BatteryPollingInterval: 5 minutes
The iBBQ is a Bluetooth LE Gatt Device
#include "SDL2.framework/Headers/SDL.h" | |
#define sdl2_guard(__expr) \ | |
if ((__expr) != 0) { \ | |
fprintf(stderr, "SDL Error: '%s'\n", SDL_GetError()); \ | |
assert(0); \ | |
} | |
#include <assert.h> |
// Depth first traversal algorithm. | |
// | |
// (credit to Alexander Stepanov in Elements Of Programming) | |
// | |
// One of the benefits is that the visitor can implement pre or post traversal algorithms, and combine them in one single piece. | |
// | |
// @generic in T, the node value type | |
func traverse_children_recursively(tree_root: T*, step_visitor: func(step: TraversalStep, node: T*)) | |
{ | |
step_visitor(TraversalStep_PRE, tree_root); |
When building programs with user interfaces*, there are parts that cannot be tested formally with either types or automated tests, because they require a human to test how things "feel."
In that context, long compile times lengthen the build-evaluate feedback loop to a point that harms quality.
@url: https://www.youtube.com/watch?v=dnz6y5U0tFs Here he find it normal to build 1M loc of scheme code in 16minutes. "respectable compile time" (It used to be 4min!)
@url: tool by Aras https://github.com/aras-p/ClangBuildAnalyzer
(require 'cl) | |
(defstruct wm-window buffer (point 0) (start 0) (hscroll 0) dedicated) | |
(defvar wm-windows) | |
(defvar wm-windows-alist) | |
(defvar wm-focus) | |
(defvar wm-workspace 0) | |
(defvar wm-workspaces nil) | |
(defvar wm-layout 0) |
// -*- mode: c ; c-file-style: "k&r" -*- | |
// x86 boot sector. | |
// | |
// Once you execute this program you will get a series of disk images, which you can try in qemu: | |
// qemu -drive file=boot.img,format=raw | |
// | |
// and burn to a usb stick using something like rufus or dd | |
#include <assert.h> | |
#include <stdlib.h> |
If you develop drivers (Software) for USB peripherals then you may only need to read chapters, 4 - Architectural Overview 5 - USB Data Flow Model 9 - USB Device Frame Work, and 10 - USB Host Hardware and Software.
You probably also need to know xHCI. The host-side USB spec.
;; Simulates Acme by creating clickable regexp links in the buffer. | |
;; | |
;; You can use it for instance to create an index: | |
;; | |
;; :/uu-re-link-mode/ : entry point. | |
;; | |
(defcustom uu-re-link-re ":/\\(.+\\)/" "Regular expression for regular expression links.") | |
(defcustom uu-re-link-re-initial "[[:space:]]:/" nil) | |
(defcustom uu-re-link-isearch t "Use isearch to find the expression interactively.") |
#define case(__x__) break; case __x__ | |
#define fallthrough(__x__) case __x__ | |
#define otherwise break; default | |
#include <assert.h> | |
#include <stdio.h> | |
int main(int argc, char **argv) { | |
switch(argc) { | |
case(0): printf("surprising\n"); |