lmt | nixpkgs | |
---|---|---|
3 | 976 | |
137 | 15,844 | |
- | 3.4% | |
0.0 | 10.0 | |
over 1 year ago | 7 days ago | |
Go | Nix | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
lmt
-
Literate Programming: Articles
One more tool to accomplish this is lmt [0] which, despite minimal documentation, is quite pleasing to use.
[0] https://github.com/driusan/lmt
-
Literate programming: Knuth is doing it wrong
I personally use literate programming to maintain my "dotfiles", mainly NixOS [1], and I _love_ it. I like to describe all possible alternative tools, why I don't use them, possible tools that look nice, random ideas and blog posts that describe parts of my config, add TODOs and screenshots, ... in short everything that is really ugly to do inside source code comments. Also I gain structure; adding headings to a 3000 LOC config is very nice.
For tangling I use lmt [2], as it works with Markdown and also play nice with Emanote [3] (full syntax highlighting inside the code blocks.). That means all my "dotfiles" are inside my Zettelkasten [4] and can be navigated like any other note I have.
[1]: https://nixos.org/
[2]: https://github.com/driusan/lmt
[3]: https://github.com/srid/emanote
[4]: https://zettelkasten.de/
-
BSAG ยป NixOS and the Art of OS Configuration
I switched to NixOS half a year ago. The reason? I fell in love with literate programming (I use [1]); being able to write (and read) your whole OS configuration is the dream!
There are few bad sides to NixOS though.
The community consists mostly of programmers, which means I am missing some creative tools (mockups, mindmaps, ..). In the future I will be able to provide/build them myself, but it is not a smooth transition from my previous arch setup.
Also the whole documentation sucks: There are three (!) official manuals + the home-manager manual + Nix pills + YT + random blogs where I have to piece everything together.
Still I find NixOS superior to every other OS (windows, linux) I have tried so far. I just feel free and am not afraid to fuck up anything [2], as I can just go to a previous generation when it doesn't boot.
Lastly, as my config is in git, I am free to try new tools -- If I don't like them, I just remove their line in my config. No more chasing after random install folders!
[1]: https://github.com/driusan/lmt
nixpkgs
-
Tracexec: TUI for tracing execve and pre-exec behavior
This will drop you into a shell where `tracexec` is installed.
[1]: https://github.com/NixOS/nixpkgs/pull/310158
-
Nix: The Breaking Point
I don't think so. The article is probably intended for the Nix community, so the author doesn't need to convince HN that something is going on. If as an outsider you are interested then you need to look into it yourself, the community has no obligation to make their internal conflicts legible to the outside world.
As an outsider myself, it certainly looks like something is going on as more than 20 Nixpkg maintainers left in a week: https://github.com/NixOS/nixpkgs/issues?q=label%3A%228.has%3...
- Maintainers Leaving
-
Air Force picks Anduril, General Atomics to develop unmanned fighter jets
https://github.com/NixOS/nixpkgs/commits?author=neon-sunset
-
Eelco Dolstra's leadership is corrosive to the Nix project
I see two signers in the top 6 displayed on https://github.com/NixOS/nixpkgs/graphs/contributors
-
3rd Edition of Programming: Principles and Practice Using C++ by Stroustrup
For a single file script, nix can make the package management quite easy: https://github.com/NixOS/nixpkgs/blob/master/doc/languages-f...
For example,
```
- NixOS/nixpkgs: There isn't a clear canonical way to refer to a specific package
-
NixOS Is Not Reproducible
Yes, Nix doesn't actually ensure that the builds are deterministic. In fact it works just fine if they aren't. There are packages in nixpkgs that aren't reproducible: https://github.com/NixOS/nixpkgs/issues?q=is%3Aopen+is%3Aiss...
-
The xz attack shell script
I'm not familiar with Bazel, but Nix in it's current form wouldn't have solved this attack. First of all, the standard mkDerivation function calls the same configure; make; make install process that made this attack possible. Nixpkgs regularly pulls in external resources (fetchUrl and friends) that are equally vulnerable to a poisoned release tarball. Checkout the comment on the current xz entry in nixpkgs https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/comp...
-
Debian Git Monorepo
NixOS uses a monorepo and I think everyone's love it.
I love being able to easily grep through all the packages source code and there's regularly PRs that harmonizes conventions across many packages.
Nixpkgs doesn't include the packaged software source code, so it's a lot more practical than what Debian is doing.
https://github.com/NixOS/nixpkgs
What are some alternatives?
emanote - Emanate a structured view of your plain-text notes
asdf - Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more
notebook-mode - GNU Emacs notebook mode
Home Manager using Nix - Manage a user environment using Nix [maintainer=@rycee]
Literate - A literate programming tool for any language
git-lfs - Git extension for versioning large files
haskell-dbus - This repository is no longer actively maintained. Please use Andrey Sverdlichenko's fork instead:
easyeffects - Limiter, compressor, convolver, equalizer and auto volume and many other plugins for PipeWire applications
geom - 2D/3D geometry toolkit for Clojure/Clojurescript
spack - A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
itypescript - ITypescript is a typescript kernel for the Jupyter notebook (A modified version of IJavascript)
waydroid - Waydroid uses a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu.