(defun my-magit-commit-and-rebase-fixup () | |
"Создать временный коммит из staged изменений и объединить с предыдущим коммитом." | |
(interactive) | |
;; Проверяем наличие staged изменений | |
(when (not (magit-anything-staged-p)) | |
(user-error "Nenio ŝanĝoj estas en la 'staged'")) | |
;; Проверяем наличие коммитов в истории | |
(when (not (magit-rev-verify "HEAD")) | |
(user-error "Nenio ŝanĝoj estas en la historio")) |
(defun my-magit-backup-branch () | |
"Backup current Git branch with predefined name based on the date." | |
(interactive) | |
(let* ((current-branch (magit-get-current-branch)) | |
(branch-name (format "backup-%s-%s" current-branch (format-time-string "%y-%m-%d-%H-%M" (current-time))))) | |
(magit-run-git "branch" "-d" branch-name) | |
(magit-run-git "checkout" "-b" branch-name current-branch) | |
(magit-run-git "push" "--force" "origin" branch-name) | |
(magit-checkout current-branch))) |
(defun my-magit-push-as-another-branch () | |
"Recreate a Magit branch by deleting and creating a new one with branch name completion." | |
(interactive) | |
(let* ((branches (split-string (car (magit-git-items "for-each-ref" "--format=%(refname:short)" "refs/heads/")) "\n")) | |
(branch-name (ivy-read "Enter branch name: " branches | |
:require-match t | |
:preselect (magit-get-current-branch) | |
:sort nil)) | |
(current-branch (magit-get-current-branch))) | |
(when (yes-or-no-p (format "Recreate & push branch \"%s\"?" branch-name)) |
g.co, Google's official URL shortcut (update: or Google Workspace's domain verification, see bottom), is compromised. People are actively having their Google accounts stolen.
Someone just tried the most sophisticated phishing attack I've ever seen. I almost fell for it. My mind is a little blown.
-
Someone named "Chloe" called me from 650-203-0000 with Caller ID saying "Google". She sounded like a real engineer, the connection was super clear, and she had an American accent. Screenshot.
-
They said that they were from Google Workspace and someone had recently gained access to my account, which they had blocked. They asked me if I had recently logged in from Frankfurt, Germany and I said no.
-
I asked if they can confirm this is Google calling by emailing me from a Google email and they said sure and sent me this email and told me to look for a case number in it, which I saw in
In this blog post, I try to explain Mastodon to people who are not familiar with social media and/or beginner computer users. I try to be as jargon-free as I can.
Structure of this blog post:
-
Reading section 1 and 2 takes a bit of effort: They explain important background knowledge for Mastodon. But, in my opinion, the effort is worth it because you’ll find it much easier to use Mastodon. Not having this knowledge can prevent even otherwise advanced computer users from enjoying Mastodon.
-
Section 3 is brief and mentions first steps for actually getting started with Mastodon.
I recently came across a little-known (to me, anyway) feature of org mode,
thanks to this mailing list reply: conditional tangling. In the :tangle
argument, as
well as the standard values (yes
, no
or a filename string), you can also set it
dynamically, by specifying an elisp expression which evaluates to the
tangle setting.
This is quite useful together with tags. Here’s a function which sets the argument based on which tags are currently set in the file:
GNU guix is a functional package manager, that can be installed on any distribution and used to manage packages, including emacs packages.
How is this different from straight.el
straight.el is also a functional package manager, but unlike guix, it only manages emacs packages, while with guix you can include external programs that you will make use of from emacs (like ripgrep), emacs
;; Inspired by this blog post on "let's surround": | |
;; https://arialdomartini.github.io/emacs-surround-2 and | |
;; https://www.emacswiki.org/emacs/SurroundRegion. | |
;; | |
;; Notable bits: | |
;; | |
;; - Specifying =open= as a default value in the closing delimiter completing | |
;; read -- that allows the user to hit return to re-use the opening | |
;; delimiter for the closing one. | |
;; - This moves point accordingly, so that you can make repeated calls to |
- The Future of 11ty — Zach Leatherman
- Hints and Suggestions — Miriam Suzanne
- 11ty and Large-Project Tooling — Paul Everitt
- Digital Frontiers, IndieWeb Cowboys, and A Place Online To Call Your Own— Henry Desroches
- You're Probably Doing Web Performance Wrong — Sia Karamalegos
- Building a Town That Doesn't Exist — Dan Sinker
- 11ty for “Non-Developers” — Adrianna Tan
- Don't Fear the Cascade — Mayank
- Managing content management (with no vendor lock-in) — David Large, Liam Bigelow
- Come to the light side: HTML Web Components — Chris Ferdi