My xdm heresy
My xdm heresy is that I don't like it and don't use it and never have(at least not on my main machines , the onesthat run my full environment). This has nothing to do with xdm itself(I don't like any of the xdm alternatives either) and everything to dowith how much of a hack the xdm model of 'logging in' is.
Unix has long had a well defined model of how you log in and establishyour environment, where the shell
cgroups: so close and yet so far away from per-user fair scheduling
Suppose, not entirely hypothetically, that you have some shared,multiuser compute servers. Further suppose that sometimes, person A isrunning a single compute process while person B is running, oh, nine.Since Linux divides CPU time among processes without caring who ownsthem, this means that person A is getting 1/10th of the CPU while personB is getting 9/10ths of it. This doesn't seem entirely fair; it wouldbe better if A and B split the CPU 5
My three sorts of (Linux) desktops
To kind of expand on a comment I made on an earlier entry , I broadly have three sorts ofLinux desktops.
On machines I don't use very much and thus don't really care about I usewhatever the default environment is, sometimes slightly customized ifit's easy enough and I'm using the system more than once. All I reallycare about on these machines is getting to a terminal emulator (sothat I can run ssh) and sometimes being able to run a browser. Oh
The persistence of spammers, illustrated
Recently, I saw the following line in the SMTP logs of one of mymachines:
RCPT TO:<3c1989aug25 .162653.25755@ziebmef.mef.org>In the old days, software tended to put more information into variousidentifiers than it usually does today. One of the vaguely convenientthings that this does is that it provides a way to carbon-date certainsorts of spammer behavior.
As you might guess,
A package dependency failure in Fedora 15
I have a quite simple view of package dependency failures for packagesin a distribution's official repositories: they shouldn't exist. Moreprecisely, any package with unmet dependencies should be excluded fromthe repository. Letting such packages sit in your repository is anunhelpful lie, one that particularly irritates sysadmins, and in myopinion it makes you look just as amateurish or at least frustrating, asfrustrating as those stores that list things as available only to turnout to be out of stock on them when you actually try
An example of the evolution of a real network
Our network as it is today has a little oddity in how it is implemented.There is a set of separate switches for one particular private sandboxnetwork , which is odd enough considering ournormal network implementation transportsall sandboxes over a set of backbone switches. Even more oddly, theseswitches are not generic dumb switches, because they transport thesandbox between themselves as a tagged VLAN (and detag it to edgeports). All of our printers are connected to this sandbox and to thissingle-subnet switch network.
To
Noting some wandering thoughts on the occasion of an anniversary
I'm a peculiar person, and so although I wrote my first entries here on June 11th,I consider June 12th to be WanderingThoughts ' real anniversarybecause it's when I decided to do it again and thus made the first day not a one-offthing. That was six years ago, which in some ways really boggles me.
I'm not someone for anniversaries; I wrote something for the firstanniversary , but never bothered noting theothers (or other significant numbers,
Why [], {}, and () are cheap in Python
Here's a trick question: are the following two lines semanticallyequivalent?
a = []a = list()In a normal Python environment they certainly have the same effect, butthe answer is that no, they are not semantically equivalent becausethere is always the possibility that the name
listhas been reboundin the current namespace. As a result, when Python executes the secondline it's obliged to go through the bother of looking uplist's nameto determine that it actually is the built
Some notes on __slots__ and class hierarchies
How
__slots__interacts with class inheritance is a little bitcomplicated (although in general everything is covered in the officialdocumentation ).There are a couple of issues.First, once a class has a dictionary, it's permanent; you cannot takethe dictionary away in subclasses. This means that if you have aclass hierarchy involving slots-using classes, all of their parentsneed to not have a dictionary, ie use
__slots__without including"__dict__"
What __slots__ are good for (or, how to use slots to save memory)
First off and to echo what everyone says, slots are for savingmemory . The direct corollary of this is that when you are consideringusing slots you should measure the memory savings you get with andwithout them; if it is not significant (to you), you should not useslots because slots have various odd side effects and drawbacks .
(Sometimes people are attracted to those side effects. Please don'tbe one of those people.)
As the documentation says, slots save you memory by eliminating(or
Menu