While in Egypt, I am on the go more often and actually having the
machine charge fully is quite useful.
Change-Id: I45109057936a0b1d8075f9eb5dcd77c45fce893d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5352
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
The python lib for sqlite doesn't support REGEXP, so we need to support it
manually.
Change-Id: I90670ff564d6fb40e8cee30c3d1509feb2c00857
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5347
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
Convert CSVs to in-memory SQLite tables from which we query. Also read variables
from the command-line.
For now, I'd say this is MVP-status.
Change-Id: I8b7400e60da4b14eea25c3f4b47447497a4218c8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5346
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
Support a tokenizer for a query language that looks like:
```
-fname:/W.*m/ lname:"Von Carroll"
```
Parser otw...
Change-Id: I2badf14a41313ca2f75dec20adbcf9031b22ab83
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5338
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
...alongside a small REPL to quickly test the functionality.
Change-Id: I3c2b3f060d82cd49488e00dec9b72f7b23e2b666
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5337
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
This is an ad-hoc way of adding “well known” executables to my
user directory for now. It’s not pretty, it is what it is.
Change-Id: I93ee1d75b48536692da86485f0ac517aa1935ec4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5335
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Makes it possible to import a dhall file as a nix expression (at IfD
time), embedding dhall into nix.
There’s some setup for adding dhall dependencies as well, but it
hasn’t been really battle-tested yet.
Change-Id: I3e5670f93c612f2eb530d7c65d6bb4b1bf7bd8bd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5333
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
This is a little helper that Graham cobbled together at one point, it
will filter an exact list of files.
Change-Id: Iab786abcd4a7a3cce45a20b2950f103defa91998
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5332
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
This allows me to jump to a workspace that is already displayed on
some buffer.
This also interfaces correctly with my back-and-forth jump
functionality, setting the variables to allow quick jumping back to
the previous buffer via the numerical index of the destination or - of
course - via s-b.
Change-Id: I25db7535089bcb17b3d61d53030b9154cfeac023
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5323
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Move the current window to a new named EXWM workspace and focus that workspace.
Change-Id: Ibb3d3b3df09c6853d2eaf02882714a5c62623d2b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5293
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
I've had the notion that builtins.genericClosure can be used to express
any recursive algorithm, but a proof is much better than a notion of
course! In this case we can easily show this by implementing a function
that converts a tail recursive function into an application of
builtins.genericClosure.
This is possible if the function resolves its self reference using a
fixed point which allows us to pass a function that encodes the call to
self in a returned attribute set, leaving the actual call to
genericClosure's operator. Additionally, some tools for collecting meta
data about functions (argCount) and calling arbitrary functions (apply,
unapply) are necessary.
Change-Id: I7d455db66d0a55e8639856ccc207639d371a5eb8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5292
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
This was temporarily commented-out and never uncommented.
Change-Id: If770721aa10c65c5601b9f53a2d1810aef57b61d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5290
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
This is handy for pasting a git commit SHA in magit's checkout minibuffer.
I also removed the dependency on clipboard.el because clipboard-yank is defined
elsewhere.
Change-Id: I6872bf63e4ba9c2b186466d083e6798123d417cc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5286
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Thankfully CI caught this bug by evaluating my Emacs init script; however, this
could've been caught even earlier if each of my Elisp modules were packaged with
Nix and be individually evaluated.
That change will come soon enough...
Change-Id: I987bab22a388c43183f79ace41ed97be83578ba6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5285
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
TODO:
- import this into SQL
- support ST-like query syntax to simplify SELECT statements
- add server and web app to query the table
- deploy web app
- add URLs to table
- extend web app to track how often users hit these techniques in rolls
Change-Id: Icecfbbc5e457a1dddad7b37fc1c0752d6e4b62e1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5284
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
It turns out that the netencode spec requiring to ignore *later*
entries meant that every parser has to do an extra check for each
element, instead of just overriding the key in the hash map.
This leads to a situation where the simple implementation is the wrong
one, which would lead to very subtle problems in parsers (see also the
infamous “json duplicate record entry” problem which has been used for
various exploits in the past).
To be fair, exploits are still possible, but at least a `Map.fromList`
will be the right implementation (provided it folds from the left) now
instead of the wrong one.
Examples of the trivial implementation being now right:
Python:
> dict([("foo", 1), ("foo", 2)])
{'foo': 2}
Rust:
> println!("{:?}", HashMap::from([
("foo", 1),
("foo", 2)
]));
{"foo": 2}
Haskell:
> Data.Map.fromList [ ("foo", 1), ("foo", 2) ]
fromList [("foo",2)]
Change-Id: Ife9593956f4718e5e720f4f348c227e4f3a71e2d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5108
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: Profpatsch <mail@profpatsch.de>
Trying out this workflow for awhile to see if I save some keystrokes.
Change-Id: I28532be04b1de971559c8df5a3717facbdfc4f00
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5278
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
This script is somewhat usable by humans (it even has a help screen!)
and can be reused in //users/sterni/nixpkgs-crate-holes. We are using
bash since that allows us to exit with the actual exit code of
cargo-audit - something that's not possible in execline.
Change-Id: I3331ae8222a20e23b8e30dc920ab48af78f0247c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5228
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
TL;DR:
- remove stale entries
- add entry for buying TSLA for 401k
- (partially) normalize habits.org by referencing ./first-of-the-month.org
Background:
Earlier today I automated as much of my investments as I can...
- crypto account auto-buys crypto 2x/mo
- Fidelity doesn't support auto-purchases of individual stocks, so I opened a
Robinhood account to auto-purchase stock 2x/mo
The only remaining thing that AFAIK I *cannot* automate is auto-stock-purchases
for TD Ameritrade (my SDBO 401k account). I don't think I can transfer this to
Robinhood because Vanguard controls which brokerages they're compatible
with. This should still be a big time-saver.
As such, it's time to rely on playbooks for this, so I'm dusting-off the
first-of-the-month.org playbook.
Change-Id: I545f8de20a0a30cac597400c4114b4549671a91d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5267
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
josh adds all of the contents from the directory that hosts the `workspace.josh`
file.
Change-Id: I7564454df88886f72d02a9be88640c42cee60fc5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5266
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Reuse the same buffer from which magit was invoked.
Change-Id: I20f661c8414cd6482d9374f9412186c66b736b94
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5265
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>