Limiting how much load Exim puts on your system
One of the things that you usually want to do with MTAs is have somelimit on how many things that they'll try to do at once. This isespecially important if, like us, you allow users to run programs fromtheir .forward s; people do every so often have runaway programs, orjust programs that sit there endlessly (trying to get a lockfile, forexample).
Unfortunately, Exim only has limited support for load limiting. Whatyou really want to do is limit the number of
Combining dual identity routing and isolated interfaces revisited
Back in DualIdentityIsolation , I described how I set up a dualidentity machine so that it had isolatedinterfaces . In it I wrote:
Alas, I am now left with a mystery: according to the policy routingrules, it looks like a packet from IP1 to an address on that subnetshould get routed via the gateway (and similarly for the othernetworks), [....]
You know what? I should have paid more attention to the mystery,because as it turns out such packets were
A growing realization about tcpdump and reading IP traffic
Here is a gotcha about reading tcpdump output that recent events havebeen tattooing on my forehead:
The only sure way to tell whether a packet is going to your gatewayor to something on the local network is to look at the destinationEthernet address.
To put it another way: a packet being sent to your network's gatewaydoes not have the gateway's IP address in it. Thus, reading tcpdump output without Ethernet addresses is not really telling you whether apacket was really sent to your gateway or whether
BitTorrent's file fragmentation problem
When BitTorrent receives a file, it gets the various chunks out of order, generally in a completely randomone. This presents the client with the problem of putting them inorder and in place.
I believe that historically there have been three approaches to dealwith this. The very first BitTorrent clients did it the simple way:they put every received block in its correct place by seeking to thatspot and writing the block out. The problem with this was horrible filefragmentation (resulting in terrible sequential read performance);
Where vi runs into its limits
Despite the fact that I use vi a fair bit , I feel that it has definite limits thatmake it not my favorite editor. For me, vi's main limits are two-fold.
First, it doesn't use graphics effectively, and I believe that itcan't; the core of vi, what makes it vi and not some other editor, isfundamentally screen oriented. You can make vi display graphicallyinstead of in a terminal window, but I don't think that you can
Checking systems with RPM verification (part 2)
There are at least two useful tricks beyond basic RPM verification that can be useful in some situations.
The first is that RPM's verification doesn't have to use the systemdatabase; instead it can get the MD5 checksums from a Here is something that I shouldn't have to say to all sorts of emailproviders but apparently need to: If someone says that you have spammed them, your first reaction shouldnot be to proclaim that you are a legitimate business (and that youdon't spam and that you have strong policies and so on); your firstreaction should be to profusely apologize and attempt to open a dialogso that you can fix the situation. There are a number of reasons for this, assuming that you are a Because I have recently been confusing myself with this, and because itis not clearly documented in the Python standard library or the tutorial(at least not that I could spot): Feeding a plain string to the Things get weird if you call Because SPARCs have OpenBoot, forcing Solaris SPARC to panic and do acrash dump is generally a pretty simple process. Because x86 hardwarehas no PROM environment (despite Sun trying to pretend otherwise ), forcing a crash dump on Solaris 10 x86 is alittle bit more intricate. Crash dumps are done through the kernel debugger, which has to be loadedahead of time from and on the system console. (Technically I think thatyou can load it on a serial connection, should you have one The codecs module 's The substring .rpm itself.This is done with ' rpm -V -p .rpm had betterbe the same version that's installed, and of course prelinking isstill an issue if you don't trust the systemthat much.
A hint for email providers
Getting Python's encoding and decoding straight
.decode() decodes a plain string (ie, bytes in some encoding) toa Unicode string. .encode() encodes a Unicode string into a plain string. unicode() constructor is the same ascalling .decode() on the string. .encode
How to force a crash dump on Solaris 10 x86
What the members of a Unicode conversion error object are
register_error function has a rather scanty description of whaterror handlers are called with. Since I have just dug into this,here is what the members are for at least UnicodeDecodeError: object The string that is being decoded to Unicode. encoding The encoding that the string is (theoretically) in. start The index in object of the first character that could not be decoded. end One past the end character of this decodingproblem. reason The human-readable error text. object Menu