Interview with me
fragorama.se is a new website about Classic Doom, and they have just published an interview with me!Interview with me
fragorama.se is a new website about Classic Doom, and they have just published an interview with me!Southampton Test Hustings
I just attended the Hustings for Southampton Test. These are my thoughts on some of the candidates.
Alan Whitehead (incumber Labour MP): Seemed rather nervous at the start but gained confidence later in the debate. To his credit he made some good points; I was impressed that he was bold enough to state that the law of the land should trump religious beliefs. However I also got the impression that he was less up to speed with other candidates on local issues and perhaps hadn't been paying proper attention to his constituency. Surprisingly enough he opposes Trident in favour of a cruise missile system like the LibDems advocate.
Jeremy Moulton (Conservatives): Made some good points and seemed a confident speaker. Some of the answers he gave seemed to have been slighty evasive/misleading when audience members responded to his answers. Attacked Alan Whitehead for using the communications allowance and supposedly putting the Labour party name on it (?)
Dave Callaghan (Liberal Democrats): Seemed the most honest of the lot. He highlighted some of the local issues that he's been campaigning for, like the closure of the Millbrook library, which he attacked Jeremy on (Jeremy is responsible for finances on the local council?).
Pearline Hingston (UKIP): A UKIP candidate who is an immigrant (how's that for a brain-breaker?). She came across as completely clueless and in general contributed very little of note. The one time she really attempted to express an opinion on something (cyclists riding on the pavement) she got smacked down by a member of the audience in response for not having a clue what she was talking about.
Chris Bluemel (Green): Surprisingly clueful and well-spoken. He spoke out in favour of nuclear disarmament and did it well, even though I don't agree with his views.
During the debates I sat next to an older gentleman who spent the time scribbling down notes on the back of an envelope. When he asked a question to the panel, he made some strange comments about Halliburton and BP. He seemed to think that there were plans to site nuclear submarines in Southampton docks, and was worried they might blow up and destroy the city. Very odd.
There was an obvious large Christian presence in the audience, and I suspect that siting the debate in a church probably didn't help. The candidates were asked at one point why they had all refused to sign a petition (I forget the name of it) declaring their support for Christian beliefs, although it was then revealed that none of the candidates had even heard of it. Several questions were asked about Christian rights that were obviously homophobic (eg. anti-gay marriage), though the people posing the questions tried to veil this by speaking in vague terms that made it less obvious what they were talking about.
Chocolate Doom on OS X, and GNUstep
Chocolate Doom runs on Mac OS X and has done for several years; however, until now, getting it running has been overly complicated and required compiling the source code from scratch. Obviously this isn't really appropriate for a Mac; it certainly doesn't fit in with the Apple way of doing things. I recently set about trying to improve the situation.

How about implementing parts of the Application Kit with GTK?
Yes and No - The GNUstep architecture provides a single, platform-independent, API for handling all aspects of GUI interaction (implemented in the gstep-gui library), with a backend architecture that permits you to have different display models (display postscript, X-windows, win32, berlin ...) while letting you use the same code for printing as for displaying. Use of GTK in the frontend gui library would remove some of those advantages without adding any.
How to make a program just run
Starting with Windows Vista, Windows limits the privileges that are given to normal users, running programs as the Administrator user only when necessary. To smooth over the fact that install programs for most software need to run as Administrator, it uses heuristics to detect whether a program is an installer. One of these is to look at the file name - if it contains "setup" in the name (among others), it is treated as an installer.
This is a problem if you develop a program that is not an installer but has "setup" in the name, because Windows treats it as though it is an installer and prompts you for administrator privileges.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<!-- The "name" field in this tag should be the same as the executable's
name -->
<assemblyIdentity version="0.0.0.0" processorArchitecture="X86"
name="chocolate-setup.exe" type="win32"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
1 24 MOVEABLE PURE "setup-manifest.xml"
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<!-- The "name" field in this tag should be the same as the executable's
name -->
<assemblyIdentity version="0.0.0.0" processorArchitecture="X86"
name="chocolate-setup.exe" type="win32"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<!-- Stop the Program Compatibility Assistant appearing: -->
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> <!-- 7 -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> <!-- Vista -->
</application>
</compatibility>
</assembly>
Python's braindamaged scoping rules
Python distinguishes between local and global variables from assignment statements. If a variable is assigned within a function, that variable is treated as a local variable. This means that you cannot do this:
my_var = None
def set_my_var():
my_var = "hello world"
set_my_var()
print my_var
my_var = None
def set_my_var():
global my_var
my_var = "hello world"
set_my_var()
print my_var
IPv6
IPv6 is something that I've been interested in for a while; I was even employed to do some v6 porting work a few years ago. Unfortunately, even though it's been several years and address exhaustion is rapidly approaching, uptake remains slow.
create nat rule entry ruleid 41416 rdr prot num 41 lcladdrfrom 192.168.1.6 lcladdrto 192.168.1.6
iface tun6to4 inet6 v4tunnel address 2002:0102:0304::1 netmask 16 endpoint any local 192.168.1.6 ttl 255 remote 192.88.99.1 post-up ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 post-down ip -6 route flush dev tun6to4 auto tun6to4
$ ping6 ipv6.google.com PING ipv6.google.com(2001:4860:a003::68) 56 data bytes 64 bytes from 2001:4860:a003::68: icmp_seq=1 ttl=61 time=53.8 ms 64 bytes from 2001:4860:a003::68: icmp_seq=2 ttl=61 time=52.5 ms 64 bytes from 2001:4860:a003::68: icmp_seq=3 ttl=61 time=45.5 ms 64 bytes from 2001:4860:a003::68: icmp_seq=4 ttl=61 time=51.5 ms
interface eth0
{
AdvSendAdvert on;
prefix 2002:0102:0304:face::/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};
iface eth0 inet6 static
address 2002:0102:0304:face::1
netmask 64
net.ipv6.conf.all.forwarding=1 net.ipv6.conf.default.forwarding=1
sudo sysctl net.ipv6.conf.all.forwarding=1 sudo sysctl net.ipv6.conf.default.forwarding=1
wlan0 Link encap:Ethernet HWaddr 00:1c:10:63:63:d0
inet addr:192.168.1.25 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: 2002:0102:0304:face:21c:10ff:fe63:63d0/64 Scope:Global
inet6 addr: fe80::21c:10ff:fe63:63d0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7658 errors:0 dropped:0 overruns:0 frame:0
TX packets:7228 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4073660 (4.0 MB) TX bytes:903010 (903.0 KB)
Stock photos
BBC News' obsession with filling their articles with stock photos that contain no relevant information is reaching absurd extremes.
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!