binding qpopper to one ip address with xinetd
In its default package on Debian, qpopper is a pop3 daemon, which is easy to configure and quite complete in its implementation (supporting apop and ssl encryption), however has the nasty disadvantage of listening to port 110 on all the interfaces a server provides. The reason is that on Debian, qpopper is started via inetd and inetd does not know how to listen to specific interfaces. If we want to change this, we have two possibilities to choose from:
1. Compiling qpopper ourselves as standalone server and have it listened to one interface.
2. Replacing inetd with xinetd.
The latter is the one I would like to focus on because it allows what we want to reach with minimal changes. At first it might be useful to explain xinetd is: xinetd is thought as a replacement of inetd and one of its biggest advantages is that it make services listen to specific interfaces only, even if they themselves do not provide such a configuration option. Xinetd can be easily retrieved via the usual apt-get install command. /etc/xinetd.d is the directory where all the services that are supposed to be run by the daemon should have their configuration file. As we like to run qpopper, we simply create a new file called “pop3″ (after the service) and fill it with the following values:
service pop3
{
disable = no
id = pop3
socket_type = stream
protocol = tcp
user = root
wait = no
flags = nameinargs
server = /usr/sbin/tcpd
server_args = /usr/sbin/in.qpopper -f /etc/qpopper.conf
bind = 1.2.3.4
}
Of course you want to replace 1.2.3.4 with the ip address of the interface you would like to use for qpopper. Restart xinitd by invoking
# /etc/init.d/xinetd restart
as root and if things went well, you should see qpopper now listening at your specified ip address:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:587 0.0.0.0:* LISTEN 20888/sendmail: MTA tcp 0 0 1.2.3.4:110 0.0.0.0:* LISTEN 14263/xinetd [...]
Composing is really strange: Each completion of a circle already spawns its follow-up. And so, after weeks of collecting and generating new audio sources, the work has begun once more. A larger track is currently in the making and may see its completion in the next days, depending on how much time I can spend with it. There is another shift in sound, perhaps an influence of Giorgos work, in that some elements that have not encountered in my music since Concrete Muser seem to reappear: Weird noise, sometimes like delusive voices or sonic splinters of a broken speaker bouncing from left to right in the stereo panorama, breaking the dominance of theme progression and variation. Perhaps it is more like an event than a planned happening and as such the music is harder to catch and more irritating. One has to see what course this will take and whether it will prevail in the other tracks too. At this time, I am not sure whether to compose another set of movements or single tracks without relationship to each other.
Photo retrospect first quarter of 2008
The first quarter of the year is gone and I think it is about time to reflect it with a photographic retrospect:
For armchair botanists and others interested in plants I added the scientific names where it made sense (requires at least a prominently featured plant in the first place ;-), providing I know what it was. This is only a small selection of what I considered worth keeping and the decision process was quite hard, as there were much more pictures of equal quality than usual. In case you wish to see more, you can have a peek at my Picasa repository, but please note that these images are copyrighted and may not be incorporarated into someone else’s work, republished or reproduced without my prior permission, whether commercial or non-profit. For this matter please contact me and if I like your project or offer, we may even get to discuss details and conditions.
How to do PHP based 301 redirects
One common problem with script based redirects is that often they default to using 302 (moved temporarily) as response code. However, as the meaning moved temporarily already implies, that code is not meant for pointing to permanent locations like linked sites of a redirector script (for instance an outbound click tracker). In this case it would be more appropriate to tell both browsers and search engines that the endpoint of the redirect should be preferred over the link that caused the redirect. So how to get it done the correct way, when the stock location header sent by PHP defaults to code 302?
The answer lies in reading the PHP documentation thoroughly, especially the provided examples ;-). As long as no html output has been spilt (sometimes accidentally via whitespace as result of sloppy editing) you can send as much headers as you like. The documentation specifically mentions two cases:
There are two special-case header calls. The first is a header that starts with the string “HTTP/” (case is not significant), which will be used to figure out the HTTP status code to send.
[...]
The second special case is the “Location:” header. Not only does it send this header back to the browser, but it also returns a REDIRECT (302) status code to the browser unless some 3xx status code has already been set.
(emphasis mine)
There lies the answer: If we want to use a 301 redirect, we will have to send two headers:
<?php
header("HTTP/1.1 301");
header("Location: http://www.example.com/");
?>
which results in:
HTTP/1.1 301 Moved Permanently Date: Fri, 11 Apr 2008 21:22:56 GMT Server: Apache/1.3.34 (Unix) Location: http://www.example.com/ Content-Type: text/html
Exactly what we wanted.
Also, this response demonstrates that headers mentioned will replace similar ones and the rest will be accomplished by server defaults. Another usage of this “replace” feature could be to fool nasty bots with unexpected error codes like:
<?php
header("HTTP/1.1 402");
?>
Which yields in:
HTTP/1.1 402 Payment Required Date: Fri, 11 Apr 2008 21:29:57 GMT Server: Apache/1.3.34 (Unix) Content-Type: text/html
You may wish to add an error page with a credit card payment form to complete the confusion :-).
Yet another release on Petcord: Giorgos Stefanou - Elati
I know, a lot of time has passed since my last entry and that I used to write more frequently in former times, but I had been busy over the last days. Part of that was related to programming a backend of a website and preparing a new Petcord release by Giorgos Stefanou called Elati. As you may have guessed already, this music is not likely equipped with a mass appeal and catchy melodies, else it would not wind up with Petcord ;-). But fear not, my dearest friends, it is a very fine work that deserves to be called electo acoustic, maybe even electro acoustics, as the virtual room created by the stereo panorama play an important role in Elati, namely being just as a parameter as tone length, pitch, volume or tempo.
Even better, the release does not endorse contemporary tendencies of flattening dynamic ranges by means of heavy compression, so that a song can be played on any equipment and any environment (independent from the background noise level). Instead, low volume really means hardly discernable sounds, since a huge dynamic range was carefully preserved during the mastering. Something this kind of music really benefits from as culmination points really get noticable just by the immense gain of volume. The cover art’s history is not less interesting either. Originally I made a draft similar to previous Petcord covers, but somehow the result was not convincing. Giorgos then had another draft, but I found it too conventional, as it featured just the run-of-the-mill “photo with subject line” type of cover. However combining the best of both surprisingly resulted in a satisfying solution and only little adjustments were necessary as most things worked out of the box.
The link between Elati and the music is unkown to me, or perhaps undefined by default, as Giorgos Stefanou does not care about carrying a message that is so important that every listener has got to identify it in order to qualify as worthy audience. Perhaps similar to my conviction that music is all about the listener can think of and the creator in this process is entirely irrelevant. If stated otherwise the music has become supplemental to the ritual of stage adolation. There are people in desperate need of someone they can look up to and project any of their unfulfilled dreams into as well as there are inflated egos who constantly need someone to tell them how great they are, before they doubt it.
Music as vehicle for attention craving sociopaths can be easily identified by its lack of substance and identity. Curiously, the most peculiar and controverse star shamans publish the most trivial and anonymous type of music. Stereotypes that could apply to anything and anyone. It comes in bulk, it lacks personal identification and we are exposed to unsolicited presentations. It perfectly fits to the definiton of spam. Musical spam, junk music. I laugh about their efforts of their marketing departments to have them considered as geniusses. If someone actually is, it will show and no justifications, redefinitions or explanations are necessary.











