summaryrefslogtreecommitdiff
path: root/Biz
AgeCommit message (Collapse)Author
2024-03-25Add some video modules for OBSBen Sima
2024-01-10Enable eternal terminal on berylliumBen Sima
This should probably be enabled everywhere... oh well.
2024-01-06Switch to gnome in berylliumBen Sima
I couldn't get my monitor to work properly in xmonad, so decided to use gnome for a while because I'll be away and will be using it headless from my macbook anyway.
2023-11-13Update radicale and set recommended headersBen Sima
This was leftover from work on the previous commit. I don't think its actually needed to get my stuff working, but these headers are recommended in the docs and the latest version supposedly has some relevant bug fixes, so I decided to commit this. - https://github.com/Kozea/Radicale/issues/838 - https://github.com/Kozea/Radicale/issues/954 - https://github.com/Kozea/Radicale/issues/1247
2023-11-06Add public collection for radicaleBen Sima
This will allow me to create a public calendar to share with people instead of using my iCloud calendar.
2023-10-31Update nixpkgsBen Sima
I need this to get gradio, I think.
2023-10-30Disabled broken xmpp domainsBen Sima
These stopped working with the Lets Encrypt integration and I don't know why. Just got a 404 when trying to check the .well-known endpoint. Also I don't know how to debug this. So I guess just disable and try to fix later?
2023-10-27CI script improvementsBen Sima
Added BILD_ARGS and removed the unused 'while read' so you can just call it directly without having to supply arguments.
2023-10-27Use nvidia GPU for graphicsBen Sima
Even though I have 64 cpus, when I use them all for compilation, the UI still lags, so that's annoying. Until I start using this for inference full-time, offload the UI stuff to the GPU.
2023-10-27Configure clight on BerylliumBen Sima
Just for my daily usage.
2023-10-27Add my GPG-derived SSH keyBen Sima
I'd much rather use GPG for key infrastructure. I'm not ready yet to fully switch over all of these keys, but this works well so far in the gitolite-admin repo so I'll test it out for a while before removing the old keys.
2023-10-27Disallow search engines from indexing my codeBen Sima
I don't really want my code to be discoverable, I only want people looking at it if I have explicitly told them about it. I tested it like so: ϟ curl -v https://simatime.com/git/ 2>&1 | rg x-robots < x-robots-tag: noindex, follow
2023-10-27Allow all git config keys in gitoliteBen Sima
The gitolite documentation is a bit of a labyrinth, but this should allow me to set 'gitweb.description' and whatever other git-config settings in the gitolite.conf file directly. I'm also disabling gerrit, because I'm not using it and the service fails to startup for some reason. Some relevant gitolite docs: - https://gitolite.com/gitolite/gitweb-daemon.html#gitweb - https://gitolite.com/gitolite/conf.html - https://gitolite.com/gitolite/git-config
2023-10-27Rename BIZ_ROOT to CODEROOTBen Sima
BIZ_ROOT was too specific. CODEROOT allows for other (non-biz) projects to live in the root of the repo. I didn't want to call it GIT_ROOT because maybe someday I won't want to use git. But I'll never not use code.
2023-10-10Add git-branchlessBen Sima
After using this for a while, I've decided that git-branchless will be the default tool for doing trunk-based development in the omnirepo.
2023-10-10Add beryllium and connect via VPNBen Sima
I finally got everything setup for the new dev machine, but I ran into a networking problem: I can't tell my home router to expose the ssh port 22 to multiple hosts. I could have made beryllium use a different port, but instead I decided to use tailscale, and this seems to work well. I still don't have hostname routing working, but maybe that's a simple config in tailscale somewhere. Eventually I will get all intra-networking stuff to use a vpn, but for now just using it for beryllium is fine.
2023-10-10Environment fixes on berylliumBen Sima
Getting beryllium setup with the omnirepo showed that a few things needed fixed.
2023-10-10Allow for infinite timeout in bildBen Sima
Setting '--time 0' will disable the timeout mechanism altogether. This is necessary because the initial bootstrap build (without access to any cached dependencies) takes *hours* mostly because of cuda and opencv and things like that.
2023-10-10Don't swallow namespace-parsing errorsBen Sima
Previously, if there was a problem with the inputs and bild failed to determine the namespace, 'fromPath' would return 'Nothing' and then 'catMaybes' would drop the error-causing input altogether. In the one time that I had a bad input, this made debugging incredibly difficult. It's always a bad idea to swallow errors silently, so instead lets just kill the program if we have bad inputs.
2023-10-03Add rundeps feature to bildBen Sima
This allows me to specify runtime dependencies, not just system or language deps.
2023-10-03Rename BIZ_ROOT to CODEROOTBen Sima
BIZ_ROOT was too specific. CODEROOT allows for other (non-biz) projects to live in the root of the repo. I didn't want to call it GIT_ROOT because maybe someday I won't want to use git. But I'll never not use code.
2023-09-21Add a 10-minute timeout for all buildsBen Sima
A build should never take more than 10 minutes. If it does, then force the programmer to make stuff faster. This should be a forcing function to either delete unneeded code, or improve the build system.
2023-09-20Prototype MynionBen Sima
This implements a prototype Mynion, my chatbot which will eventually help me write code here. In fact he's already helping me, and works pretty well over xmpp. The prompt is currently not checked in because I'm experimenting with it a lot, and it should probably be a runtime parameter anyways. In the course of writing this I added some helper libraries to get me going, configured black (didn't even know that was possible), and added 'outlines' and its dependencies even though I didn't end up using it. I'll keep outlines around for now, but I'm not sure how useful it really is because afaict its just pre-defining some stop conditions. But it took a while to get it working so I'll just keep it in for now.
2023-09-19Parse and format deadnix json outputBen Sima
Deadnix was printing a bunch of unicode characters so it could draw lines to the source location of an error, and it would mess up my output. Anyway I didn't find that feature useful. Now I just get the json output and print the line number and error message for the lint failure. Also did some refactoring where I saw fit: added a log message so you know what linter is currently running, and cleaned up some syntax.
2023-09-19Fix checking of grep exitcodeBen Sima
This is one of those things that's hard to get right because it depends on the state of the git repo to exercise all code paths.
2023-09-19Lint faster by grouping files by extensionBen Sima
Previously I would lint every file individually, in serial. This took forever. Now I group the files by extension (by first getting the Namespace) and run each linter on all relevant files at once. This is so much faster its stupid. Also I added formatters back into the dev env because my editor needs them to autoformat.
2023-08-22Replace pylint with ruffBen Sima
Ruff is like a million times faster, and I mostly ignored pylint's suggestions anyway. I also took this opportunity to move lint tools into a runtime dependency on Lint.hs, which meant adding a wrapper to the Haskell builder, which was easy enough. This paves the way for proper rundeps in bild.
2023-08-22Add a commit-msg hook lint and various other cleanupsBen Sima
Turns out that gitlint by default enforces the exact commit-msg format that I like to use. I'm enabling this because even I write poor commit messages sometimes, and looking back on my commits from even a few days ago is sometimes not very helpful. I also made some minor comment and nix changes that I noticed while reviewing my work from the last few days.
2023-08-21Don't run ci on notes refsBen Sima
2023-08-21Only run pre-push if there hasn't been a successful runBen Sima
2023-08-21Refactor the build system for readabilityBen Sima
Lots of changes here but the code is much improved. The nix code is clearer and structured better. The Haskell code improved in response to the nix changes. I needed to use a qualified path instead of the abspath because the BIZ_ROOT changes based on whether bild runs in nix or runs in the user environment. Rather than passing every argument into Builder.nix, now I just pass the json from bild and deconstruct it in nix. This is obviously a much better design and it only came to be after sleeping on it the other night.
2023-08-17Delete BesselBen Sima
Bild does not link libraries, and idk if it ever will, so just delete this for now.
2023-08-17Reload dev environment after git checkoutBen Sima
2023-08-17Add --no-cabal flag to ormoluBen Sima
2023-08-17Nixify C buildBen Sima
This is working with libsodium as an example. Its unfortunate that we need the extra ':arg -lsodium' but how else can I get the name of the library for linking? Is that something in the nix attr metadata? Anyway, an optimization for another day.
2023-08-17Nixify rust buildBen Sima
Not getting deps yet but thats okay, I basically need to do a bunch of annoying nix work to get rustPackages into a thing like pythonPackages.
2023-08-16Fix variable substitution and indenting in ci scriptBen Sima
2023-08-16Condense note message in pre-push hookBen Sima
2023-08-16Fix active authors email in testBen Sima
2023-08-16Don't br after Log.info in lint outputBen Sima
2023-08-16Get python targets buildingBen Sima
I added 'black' to Biz/Lint.hs, but not the others because they rely on dependencies being in the PYTHONPATH to work, so they are only relevant in nix builds and repls. I also made some other tweaks to the python checkPhase and linted all the files. Everything should be building and linting correctly now.
2023-08-16Log and return output to callerBen Sima
The main change here is 'puts' now returns a value, this enables me to collect the value from the conduit source while also doing stuff with it, like printing or logging it as I want. Previously I was running conduit over the source, *and then* kicking off the concurrent processes to wait for the process and collect the output. This would (I think) drain the source before it got to the 'puts' conduit run, and so I wouldn't be able to get the output streamed in real time. It took a lot of refactoring and exploratory programming to get to this relatively-small diff, but now puts works correctly. At least I think it does... it seems to work more reliably from ghci than from the shell. Maybe the shell or TERM is causing nix-store to do some buffering? Maybe I need to use the threaded runtime in GHC? Not sure, but I will look out for this issue and try to identify and fix. Update: yep it was the threaded runtime. I enabled that and now it works in the shell. I squashed that commit into this one.
2023-08-16Turn pre-push into a record-keeping ciBen Sima
This is necessary because otherwise I have no record of when I had a successful build.
2023-08-16Run lintBen Sima
Idk why these missed the linter. Probably packages updated in the nixpkgs version bump.
2023-08-16Lint concurrentlyBen Sima
Roughly a 2x speedup.
2023-08-16Add llama-cpp and exllamaBen Sima
2023-08-16Update nixpkgs to 23.05Ben Sima
2023-08-10Allow underscores in namespacesBen Sima
2023-08-07Get ava.py running with nixified buildsBen Sima
I had to redo some of my python overrides and crib the bitsandbytes.nix from upstream. Ava is failing because: ValueError: Tokenizer class LlamaTokenizer does not exist or is not currently imported. I think this means I need to update my nixpkgs pin, so I'm gonna snapshot my work in git, do the update, and that might obviate the local bitsandbytes.nix anyway.
2023-08-07Working nixified python buildBen Sima
This represents quite a few evenings of hacking. It doesn't build all of my Python code, because my Python code is not up to snuff, but it builds the examples and pulls in third party dependencies. Some design points: - I'm using buildPythonApplication in Builder.nix because it was getting way too annoying to wrap the Python script and set PYTHONPATH myself. Easier and more robust to just use the upstream nix builder - Because of this, I had to generate a setup.py. Maybe switch to pyproject.toml in the future, whatever. - Also because of this, Target.wrapper is becoming redundant. I'll just remove it when I get Guile built in nix. - Biz/Bild.nix is getting messy and could use a refactor. - In Builder.nix, I worked around the empty directories bug by just finding and deleting empty directories after unpacking. If its stupid but works it ain't stupid! - I had to touch __init__.py files in all directories before building. Annoying! - `repl` just works, which is awesome - To ensure good Python code, I moved lints and added type checking to the build. So I can't build anything unless it passes those checks. This seems restrictive, but if I want to run some non-passing code, I can still use `repl`, so it's actually not inhibitory.