Domain: algebraicthunk.net
Stories and comments across the archive that link to algebraicthunk.net.
Comments · 11
-
Re:"grown long, sometimes to 40 or more items"
-
Re:"grown long, sometimes to 40 or more items"
-
Re:When I saw this, I didn't know what it was
he questions for me are "WTF does it do?", "Why does it have to walk this tree, and what is so bloody CPU intensive about it?" followed by, "Why does an update have to care what patches are superseded? As long as you're up to the latest patch level, it should be all good".
I think the whole thing is fundamentally broken. You have your current version of $Thing, it depends on N other things which must be of a given version. When you upgrade $Thing you just check to make sure the things it depends on are there and if they aren't, then you get them. The old stuff? You just check to see what depends on it, and if there is no longer anything depending on it you can quarantine it. If anything tries to access a quarantined dependancy, then your dependencies are broken and you need to patch the app that tried to do that.
I know I'm glossing over some things, and package management is not trivial; but there's no excuse I can see for exponentially growing scan algorithms.
Tell that to the apt-get folks.
http://algebraicthunk.net/~dburrows/blog/entry/package-management-sudoku/
http://algebraicthunk.net/~dburrows/blog/entry/package-management-sudoku-2/
-
Re:When I saw this, I didn't know what it was
he questions for me are "WTF does it do?", "Why does it have to walk this tree, and what is so bloody CPU intensive about it?" followed by, "Why does an update have to care what patches are superseded? As long as you're up to the latest patch level, it should be all good".
I think the whole thing is fundamentally broken. You have your current version of $Thing, it depends on N other things which must be of a given version. When you upgrade $Thing you just check to make sure the things it depends on are there and if they aren't, then you get them. The old stuff? You just check to see what depends on it, and if there is no longer anything depending on it you can quarantine it. If anything tries to access a quarantined dependancy, then your dependencies are broken and you need to patch the app that tried to do that.
I know I'm glossing over some things, and package management is not trivial; but there's no excuse I can see for exponentially growing scan algorithms.
Tell that to the apt-get folks.
http://algebraicthunk.net/~dburrows/blog/entry/package-management-sudoku/
http://algebraicthunk.net/~dburrows/blog/entry/package-management-sudoku-2/
-
Re:O(2â) should be avoided
How exactly does someone on Slashdot think dependencies are trivial to calculate and resolve?
http://algebraicthunk.net/~dburrows/blog/entry/package-management-sudoku/
http://algebraicthunk.net/~dburrows/blog/entry/package-management-sudoku-2/
Oh, I know the answer, it's all about the MS bashing.
-
Re:O(2â) should be avoided
How exactly does someone on Slashdot think dependencies are trivial to calculate and resolve?
http://algebraicthunk.net/~dburrows/blog/entry/package-management-sudoku/
http://algebraicthunk.net/~dburrows/blog/entry/package-management-sudoku-2/
Oh, I know the answer, it's all about the MS bashing.
-
Re:Gentoo already did it
Portage can solve sudokus in no time. Can't find the link now but just make ebuilds of the squares.
I think you mean Debian.
Though, it's completely missing the point: The fun part of this is the fact you just need to snap a quick picture without having to enter the values manually.
-
Re:Meanwhile, In 'Unstable'...
From the aptitude documentation
changelog
Downloads and displays the Debian changelog for each of the given source or binary packages.
By default, the changelog for the version which would be installed with "aptitude install" is downloaded. You can select a particular version of a package by appending =version to the package name; you can select the version from a particular archive by appending /archive to the package name. -
Re:Python is available
Just please don't make the argument Python is inherently more readable.
It's not
http://algebraicthunk.net/~dburrows/blog/entry/attachments/debsudoku.py
-
Mod up P, GP and P=NP: choose two
Allow me to clarify parent and grand-parent for those of you who don't read articles:
As a proof-of-concept, I have written a hacky Python script, named debsudoku.py, that can convert ksudoku saved games into Packages files suitable for use with apt-get or aptitude.
(Source: TFA, at http://algebraicthunk.net/~dburrows/blog/entry/package-management-sudoku/)
Emphasis added. Note that dpkg doesn't solve the dependency puzzle, but apt-get, aptitude and other package managers do (including synaptic and gnome-app-install [the "Add/Remove" thing]). Hence the suggested badtitle (which I agree with).
The 'aptitude --help' bit and the super cow powers: if you run 'apt-get moo', you'll get a cowsay output (that is, an ascii-art cow saying "Have you mooed today"). Running 'aptitude moo' gets you "There are no Easter Eggs in this program". Running 'apt$GETITUDE --help' gives you "this apt[itude] does [not] have Super Cow Powers".
Just FYI
;) -
Re:Cheat code for even Sudoku??
RTFA. I know, I know, what am I suggesting, it's Slashdot.
Here's the quick version: Russell Coker remarked that "a package management system that can solve Sudoku based on package dependency rules is not something that I think would be useful or worth having."
Daniel Burrows realized that apt could, in fact, currently be used to solve Sudoku puzzles, and wrote a Python script to automate the process of creating the packages required to do such a thing. That's the linked article, and it gives the background I'm repeating here.
I, personally, think it's pretty damned cool. Useless, but cool.
And, as the article points out, there exist better Sudoku solving algorithms. apt is a rather poor Sudoku solver, mainly because it's designed to come up with the "best" dependency resolution rather than solve Sudoku. It's not to "cheat" at Sudoku, but rather to demonstrate the power of the apt dependency resolver.