- Make sure you have Emacs with treesitter support:
M-:
(treesit-available-p)
RET
should returnt
- Make sure you have installed python treesitter grammar
;; eglot-codelens.el --- Add support for codelenses to eglot -*- lexical-binding: t -*- | |
;;; Commentary: | |
;;; Code: | |
;;; Extending eglot to support lenses | |
;;;; Findings | |
;; Lenses often support the option to be used as a code action | |
;; some servers rely on custom code actions implemented by the client | |
;; - [[https://github.com/emacs-lsp/lsp-mode/issues/2250]] mentions this |
# explicitly define the interface | |
__all__ = ["minimal_dir"] | |
from functools import cache | |
@cache | |
def get_stdlib_packages(): | |
""" Get list that should include all stdlib package/module names. | |
Not perfect. Has false positives. |
The short answer is that you need to set up your own web server (Hetzner, AWS, DigitalOcean, etc.), install an email software on it (Listmonk, Mailwizz, Mautic), and use an SMTP like Amazon SES. It's not that hard. If you're on Windows, Putty and FileZilla will be your main programs to access your server. When using CSV files for your contacts, you want to use UTF-8 format.
There are some detailed guides below for Sendy and Listmonk. But even if you have/want to hire someone to set it up for you, they should be able to do so for under $60 (check Fiverr). So it's still the most affordable option.
When I searched for this I had a very hard time finding a right answer because all the results were SEO blogs advertising their newsletter services (Mailchimp, Convertkit, etc.), which is not the same thing.
My use case is that I have a Google form collecting tens of thousands of applications. And I need to re
# Put this function to your .bashrc file. | |
# Usage: mv oldfilename | |
# If you call mv without the second parameter it will prompt you to edit the filename on command line. | |
# Original mv is called when it's called with more than one argument. | |
# It's useful when you want to change just a few letters in a long name. | |
# | |
# Also see: | |
# - imv from renameutils | |
# - Ctrl-W Ctrl-Y Ctrl-Y (cut last word, paste, paste) |
# We use PROMPT_COMMAND and the DEBUG trap to generate timing information. We try | |
# to avoid clobbering what we can, and try to give the user ways around our | |
# clobbers, if it's unavoidable. For example, PROMPT_COMMAND is appended to, | |
# and the DEBUG trap is layered with other traps, if it exists. | |
# A bash quirk is that the DEBUG trap is fired every time a command runs, even | |
# if it's later on in the pipeline. If uncorrected, this could cause bad timing | |
# data for commands like `slow | slow | fast`, since the timer starts at the start | |
# of the "fast" command. |
Hopefully you'll Live Long and Prosper, so I don't mean terminal as in "you gonna die". This is a somewhat opinionated article on configuring a macOS machine with:
- iTerm2
- Z-shell
- Oh My ZSH! (mostly obsolete now)
- Powerlevel9k
- Nerd Fonts, which are Powerline-derived fonts, particularly my favorite - Hack Nerd
This week NN Group released a video by Jakob Nielsen in which he attempts to help designers deal with the problem of customers being resistant to their new site/product redesign. The argument goes thusly:
- Humans naturally resist change
- Your change is for the better
- Customers should just get used to it and stop complaining
There's slightly more to it than that, he caveats his argument with requiring you to have of course followed their best practices on product design, and allows for a period of customers being able to elect to continue to use the old site, although he says this is obviously only a temporary solution as you don't want to support both.
#include <time.h> // Robert Nystrom | |
#include <stdio.h> // @munificentbob | |
#include <stdlib.h> // for Ginny | |
#define r return // 2008-2019 | |
#define l(a, b, c, d) for (i y=a;y\ | |
<b; y++) for (int x = c; x < d; x++) | |
typedef int i;const i H=40;const i W | |
=80;i m[40][80];i g(i x){r rand()%x; | |
}void cave(i s){i w=g(10)+5;i h=g(6) | |
+3;i t=g(W-w-2)+1;i u=g(H-h-2)+1;l(u |