- Parallel Computing Course - Stanford CS149, Fall 2023
- Performance-Aware Programming Series by Casey Muratori
- Algorithms for Modern Hardware
- Computer Systems: A Programmer's Perspective, 3/E - by Randal E. Bryant and David R. O'Hallaron, Carnegie Mellon University
- Performance Engineering Of Software Systems - am MITOCW course
- Parallel Programming 2020 by NHR@FAU
- Cpu Caches and Why You Care - by Scott Meyers
;;; eglot-booster.el --- boost eglot using emacs-lsp-booster -*- lexical-binding: t; -*- | |
;; Copyright (C) 2024 J.D. Smith | |
;;; Commentary: | |
;; **UPDATE** This has been superseded by the following package: | |
;; https://github.com/jdtsmith/eglot-booster | |
;; | |
;; Boost eglot with emacs-lsp-booster. | |
;; 1. Download a recent emacs-lsp-booster from |
Majority of the resources I used to build Tucan, my toy optimizing compiler in Rust. This list is not complete but most of the things listed here are things I really read through and used.
- Engineering a compiler (I use this a lot! For SSA, dominance and optimizations)
- [Static Single Assignment Book][ssabook] (I use this a lot!)
- Types And Programming Languages
These files illustrate the way that I have set up Nix and Home Manager for standalone use on macOS on both an Intel and Apple Silicon machine, in case the examples are useful to anyone. Some of the configuration is separated out into separate files in configs/
which get imported in home.nix
. Some of my existing dotfiles are placed in dotfiles/
and then symlinked in by Nix to the location that that the system expects to find them.
It is a work in progress so currently I am handling installation of R separately.
- Get path of remote socket: execute on remote host
emacs --batch --execute "(progn (require 'server) (princ (expand-file-name \"remote\" server-socket-dir) #'external-debugging-output))"
- Get path of local socket: execute on local host
emacs --batch --execute "(progn
;; This elisp code uses use-package, a macro to simplify configuration. It will | |
;; install it if it's not available, so please edit the following code as | |
;; appropriate before running it. | |
;; Note that this file does not define any auto-expanding YaSnippets. | |
;; Install use-package | |
(package-install 'use-package) | |
;; AucTeX settings - almost no changes |
Changes for the scripts of the Anki Wanikani Ultimate 2 deck, feel free to use them how you like. | |
Features: | |
- Automatic Romaji to Kana conversion in reading input using WanaKana. | |
- Multiple input support (separated by a space for readings and by a comma for meanings, | |
eg: "axe, loaf bread counter" or "あめ あま"). | |
- Shows each right and wrong answer from your input. | |
- Automatic resizing of characters for small screens. | |
- Reordered the Back template of the cards to be more similar to the Wanikani site (reading related things come first in reading cards, | |
same for meaning). |
Querying one's favorite search engine with the text "a monad is" yields this answer on StackOverflow, which explains, in excruciating mathematical symbology, what a monad in fact is. But, don't worry. Understanding monads doesn't require you to learn the nuances of such concepts as moirails and eigenfunctors. I would suggest that the concept of monads can be distilled into a clearer single sentence.
A monad is a control abstraction that defines a composition of effectful functions.
Let's unpack.
;; This gist has been superseded by a Github repo, new activity will | |
;; happen at https://github.com/aspiers/etrace | |
;;; etrace.el --- Emacs Lisp Tracer -*- lexical-binding: t -*- | |
;; Released under the MIT license, Copyright Jane Street Group, LLC | |
;; This module modifies the instrumentation profiler included with | |
;; Emacs called "elp" to also record trace events for the beginning | |
;; and end of function calls, and provides a function to write out | |
;; those events in Chromium JSON trace format. | |
;; |