*** Matrix
contact me on matrix at ~ret2pop:social.nullring.xyz~.
*** Email
-- preston@nullring.xyz
- ret2pop@gmail.com
+- preston@nullring.xyz
*** Amateur Radio (In case the world ends)
My callsign is ~VE7PPN~.
*** Linkedin
You can see my [[https://ca.linkedin.com/in/preston-pan-4aa635296][personal linkedin profile]].
-
+** Keys
+This is for all my public keys that are important. Note: for cryptocurrency public keys, see
+[[file:index.org][the index]] page with all my addresses. Use either your own self hosted scanner, or another
+public scanner to get my public keys.
+- This is [[file:public-key.asc][my gpg public key for ret2pop]].
+- This is [[file:id_ed25519.pub][my ssh key]].
* Professional
Here you can find [[file:./resume2.pdf][my resume]], which contains it all. I am always open for new job opportunities!
(lambda () (yas-minor-mode)
(yas-activate-extra-mode 'latex-mode)))
-(eval-after-load "company" '(add-to-list 'company-backends '(company-ispell company-capf company-yasnippet company-files))) (add-hook 'after-init-hook 'global-company-mode)
+(eval-after-load "company" '(add-to-list 'company-backends
+ '(company-ispell company-capf company-irony
+ company-yasnippet company-files)))
+(add-hook 'after-init-hook 'global-company-mode)
(use-package ispell
:init
(setq ispell-program-name "aspell")
:config
(add-hook 'org-mode-hook (lambda () (org-superstar-mode 1))))
-(use-package eglot
+(use-package eglot
:config
- (add-hook 'prog-mode-hook 'eglot-ensure)
(add-to-list 'eglot-server-programs '(nix-mode . ("nil")))
- (add-hook 'prog-mode-hook 'lsp)
+ (add-hook 'prog-mode-hook 'eglot-ensure)
:hook
(nix-mode . eglot-ensure))
+(use-package lsp
+ :hook
+ (prog-mode . lsp))
+(use-package platformio-mode
+ :hook (prog-mode . platformio-conditionally-enable))
+
+(use-package irony-mode
+ :config
+ (add-hook 'c++-mode-hook 'irony-mode)
+ (add-hook 'c-mode-hook 'irony-mode)
+ (add-hook 'objc-mode-hook 'irony-mode)
+ (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options))
+
+(use-package irony-eldoc
+ :config (add-hook 'irony-mode-hook #'irony-eldoc))
+
+(use-package solidity-mode)
+(use-package company-solidity)
+(use-package solidity-flycheck
+ :init
+ (setq solidity-flycheck-solc-checker-active t))
+
+(use-package flycheck
+ :init (global-flycheck-mode))
(use-package projectile
:init
(erc-tls :server "irc.libera.chat"
:port "6697"))
+
+(defun efnet ()
+ (interactive)
+ (erc-tls :server "irc.prison.net"
+ :port "6697"))
+
(defun matrix-org ()
(interactive)
(ement-connect :uri-prefix "http://localhost:8009"))
"f f" '(eglot-format :wk "Format code buffer")
"i p c" '(prestonpan :wk "Connect to my IRC server")
"i l c" '(liberachat :wk "Connect to libera chat server")
+ "i e c" '(efnet :wk "Connect to efnet chat server")
"h m" '(woman :wk "Manual")
"h i" '(info :wk "Info")
"s m" '(proced :wk "System Manager")
* Completion
Company-mode! We need this to do autocomplete stuff.
#+begin_src emacs-lisp
- (eval-after-load "company" '(add-to-list 'company-backends '(company-ispell company-capf company-yasnippet company-files))) (add-hook 'after-init-hook 'global-company-mode)
- (use-package ispell
- :init
- (setq ispell-program-name "aspell")
- (setq ispell-silently-savep t)
- (setq ispell-dictionary "en")
- (setq ispell-alternate-dictionary "/home/preston/.local/share/my.dict"))
+ (eval-after-load "company" '(add-to-list 'company-backends
+ '(company-ispell company-capf company-irony
+ company-yasnippet company-files)))
+ (add-hook 'after-init-hook 'global-company-mode)
+ (use-package ispell
+ :init
+ (setq ispell-program-name "aspell")
+ (setq ispell-silently-savep t)
+ (setq ispell-dictionary "en")
+ (setq ispell-alternate-dictionary "/home/preston/.local/share/my.dict"))
#+end_src
* Spelling
#+begin_src emacs-lisp
** LSP
We set up eglot, the LSP manager for emacs, now built in:
#+begin_src emacs-lisp
- (use-package eglot
+ (use-package eglot
:config
- (add-hook 'prog-mode-hook 'eglot-ensure)
(add-to-list 'eglot-server-programs '(nix-mode . ("nil")))
- (add-hook 'prog-mode-hook 'lsp)
+ (add-hook 'prog-mode-hook 'eglot-ensure)
:hook
(nix-mode . eglot-ensure))
+ (use-package lsp
+ :hook
+ (prog-mode . lsp))
+ (use-package platformio-mode
+ :hook (prog-mode . platformio-conditionally-enable))
+#+end_src
+*** C/C++
+#+begin_src emacs-lisp
+ (use-package irony-mode
+ :config
+ (add-hook 'c++-mode-hook 'irony-mode)
+ (add-hook 'c-mode-hook 'irony-mode)
+ (add-hook 'objc-mode-hook 'irony-mode)
+ (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options))
+
+ (use-package irony-eldoc
+ :config (add-hook 'irony-mode-hook #'irony-eldoc))
#+end_src
+*** Solidity
+For writing solidity:
+#+begin_src emacs-lisp
+ (use-package solidity-mode)
+ (use-package company-solidity)
+ (use-package solidity-flycheck
+ :init
+ (setq solidity-flycheck-solc-checker-active t))
+
+ (use-package flycheck
+ :init (global-flycheck-mode))
+#+end_src
+
** Projectile
Manages projects and shit.
#+begin_src emacs-lisp
(interactive)
(erc-tls :server "irc.libera.chat"
:port "6697"))
+
+
+ (defun efnet ()
+ (interactive)
+ (erc-tls :server "irc.prison.net"
+ :port "6697"))
#+end_src
** Matrix
#+begin_src emacs-lisp
"f f" '(eglot-format :wk "Format code buffer")
"i p c" '(prestonpan :wk "Connect to my IRC server")
"i l c" '(liberachat :wk "Connect to libera chat server")
+ "i e c" '(efnet :wk "Connect to efnet chat server")
"h m" '(woman :wk "Manual")
"h i" '(info :wk "Info")
"s m" '(proced :wk "System Manager")
--- /dev/null
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICts6+MQiMwpA+DfFQxjIN214Jn0pCw/2BDvOzPhR/H2 preston@continuity-dell
--- /dev/null
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Monday, 30 December 2024
+** 19:41
+Today I decided to journal again, which is always a rare sight. Right now I'm with Howard at the VPL
+main branch, and I'm looking at org-roam-ui while trying to figure out if I can realistically
+publish it on my webpage. Additionally, I'm trying to make it more effortless for me to publish my
+website, despite how easy it currently is, and I'm investigating if there's more I can publish
+automatically with org-mode. I can convert markdown files to org files using pandoc, so I am
+actually never having to use markdown for anything, and I can ensure that articles I write in
+markdown can be published to my website in org mode.
--- /dev/null
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mDMEZ24LaRYJKwYBBAHaRw8BAQdAdimoBHhaaJSoQA4F8v1AXmRk7FjPL/M078Jp
+t5F1ZaO0H1ByZXN0b24gUGFuIDxyZXQycG9wQGdtYWlsLmNvbT6IkwQTFgoAOxYh
+BK7Cc791tvVNgTQ6GsH+bO05OubBBQJnbgtpAhsDBQsJCAcCAiICBhUKCQgLAgQW
+AgMBAh4HAheAAAoJEMH+bO05OubBPnUA/iaNvWzWQOD2eUByEe2QsyLD68ZE43Vq
+e6E0a5ZSEJR7AP9VVlJu1JSmB9nIy52hoPf/mVbvUcsyV8f5N/tfo+aHBLg4BGdu
+C2kSCisGAQQBl1UBBQEBB0DoMqjoGCuORh8TuAirwsI5U5waNL9v0tv/BP5n21OG
+dAMBCAeIeAQYFgoAIBYhBK7Cc791tvVNgTQ6GsH+bO05OubBBQJnbgtpAhsMAAoJ
+EMH+bO05OubBArcBAPsFJiuJu6D4gUdyM71W2yxnZu1sKRIJcz5Rx60jwcK/AQCb
+xOFl/AcAZxvrYsinjA4G8A6hOhsBChe/OFWvTYQ9BQ==
+=kLUJ
+-----END PGP PUBLIC KEY BLOCK-----