summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-04-11Retry after disconnectBen Sima
I think this will only retry once... would be nice to have some kind of backoff... oh well.
2020-04-11Add channel size to json serializationBen Sima
2020-04-11Fix a bug in que --serveBen Sima
2020-04-11Make Quepath just a single TextBen Sima
Prevents nested lists in the app state.
2020-04-11Add auth header to que clientBen Sima
2020-04-11Make push work from anywhereBen Sima
2020-04-11Switch que-server to envyBen Sima
2020-04-10Replace Config/Init/Logger with envy and simpler codeBen Sima
Idk what I was thinking, I dodn't need any of that stuff.
2020-04-10Deploy herocomics.app production serverBen Sima
This also includes some drive-by formatting changes and config changes needed to get it up and running.
2020-04-10Remove unnecessary blaze depsBen Sima
I prefer lucid anyway
2020-04-10Get the ghcjs build workingBen Sima
2020-04-08Refactor client, fixing some bugsBen Sima
2020-04-08Set python indent to 4Ben Sima
2020-04-08Fix push-all scriptBen Sima
2020-04-08Finish the request after guardingBen Sima
This prevents and further code from being executed. I think this was happening so posted messages were still going on the que even though I said they weren't. I really need some tests.
2020-04-08Return the app state as a simple dashboardBen Sima
2020-04-07Add user agent header to que clientBen Sima
2020-04-06Add tmux in addition to wemuxBen Sima
2020-04-05Deploy que.run without nginxBen Sima
I still have to reimplement the SSL stuff but in the Haskell code. That seems kinda hard or at least requires research that I don't wanna do right now.
2020-04-04Remove some empty spaceBen Sima
2020-04-04Remove some TODOsBen Sima
I stored them in my org files.
2020-04-04Attempt to fix ipv6Ben Sima
Not sure if this worked. Hopefully it didn't break anything in the meantime.
2020-04-04Fix jellyfinBen Sima
Apparently it needs the user to be jellyfin. Idk.
2020-04-04Get prod up and running againBen Sima
Hopefully this will be the last time I need to do this!
2020-04-04Try to get tags working reliablyBen Sima
2020-04-03Update motd once againBen Sima
2020-04-03Add wemux to the dev machineBen Sima
I also had to refactor the overlays stuff a bit, but it is much nicer now.
2020-04-03Fix motdBen Sima
2020-04-03Centralize hackage packages to deps.nixBen Sima
This also allowes me to make 'repl' into a universal command. This makes it much easier to work across different projects.
2020-04-03Factor haskell packages into overlaysBen Sima
2020-04-03Remove old scripts and update READMEBen Sima
2020-04-03Rename Serval to ProdBen Sima
2020-04-03Fix typo in dev configBen Sima
2020-04-03Get ghc with hoogle working (yay!)Ben Sima
2020-04-03Consolidate most build functions to biz.nixBen Sima
2020-04-03Rewrite buildGhc and buildGhcjsBen Sima
I wanted to even further simplify the build tooling overhead. My general goal is to not have to think about declaring packages, or dependencies, or really anything that you might find in a cabal file. Not all of these goals are possible, but we can get pretty close. With this commit all I need for the 'buildGhc/buildGhcjs' functions is the path to the entrypoint file; everything else is either inferred by the Nix code or declared in the Haskell code comments. The strategy is to map a Haskell module to an executable artifact, and pass just that module to 'ghc --make'. Then we can rely on ghc to handle walking the local filesystem for imports. The only thing ghc really needs to know is a name for the output executable; it is hard to automatically infer this, so we have a simple comment syntax to declare this in the file. The comment syntax is inspired by existing Haskell 'LANGUAGE' pragmas; having this in the same file keeps the configuration as close to the real code as possible. The Nix code then extracts this info from the code comments, and sets the required ghc flags. Second, we need to declare the set of 3rd-party packages that our program relies on. For this we can re-use the same comment syntax and just list the dependencies, then extract them in Nix and construct a package set as we were before. This reduces the amount of "package declaration" code we have to write in default.nix, and reduces the amount of time we have to spend switching between the Haskell code and the Nix code (I find such context switching super annoying). I also think having the configuration in with the Haskell code encourages us to write smaller, simpler modules and only write code that we need. Additionally, I refactored the bild and ghci (now called 'repl') scripts to work in any directory. The .envrc uses direnv to set the path so that you can run these scripts anywhere. That means the following works: $ cd Run/Que $ bild Website $ repl Server λ> :l Run.Que.Server I find this to be a rather nice workflow.
2020-04-02Reorganize and comment some of the nix codeBen Sima
2020-04-01Bound ques to about 10 itemsBen Sima
I also block before taking, instead of doing a mult and tap. This is a simple way to fix the memory issue, and makes them conceptually simpler to work with I think. The channels are still mutli-consumer and multi-producer, which is fine. I'm not sure now I will implement the regular pubsub, but I'm not sure there is a great usecase for that anyway.
2020-04-01Add _ to guardNs whitelistBen Sima
If we've gotten past the first auth check then we are already "authenticated", or whatever.
2020-04-01Don't print stacktraces for a few of these errorsBen Sima
2020-04-01Make pub the only publically-writable namespaceBen Sima
2020-04-01Delete old nixpkgs pinBen Sima
2020-04-01Add matrix and riot server configBen Sima
2020-04-01Add basic details for the paid servicesBen Sima
2020-03-31Finally fixed the guardIP thingBen Sima
Turns out the ultimate reason was that I wasn't actually returning out of the handler, I was just setting the HTTP status. Now I'm sure that it works correctly.
2020-03-31Add part of jukebox scriptBen Sima
2020-03-31Finally fix guardIPBen Sima
First problem was that my `extract` function wasn't working. Second problem was that nginx wasn't passing along the headers anyway.
2020-03-31Add tutorial and apidocs to websiteBen Sima
2020-03-31Cleanup index and _ ns handlingBen Sima
So now _ is the special namespace that only I can post to. Unfortunately I think the guardIP function is still broken.
2020-03-31Massively improve the que-websiteBen Sima
curl was throwing an exception if the file got too long, because I was passing the entire file contents in the arguments to curl. I tried using a tmp file but that didn't work for some reason. So I switched to req and that seems to work well. I also made it faster by serving all pages concurrently, and I spruced up the CSS a ton.