Felix J. Ogris' private homepage: some stuff about
homemade software, FreeBSD, Linux, computers, and hacking in general.
See my profile on
Xing, my Google+
profile, or at
my current job (scroll down half the page).
Somewhat more nosy? Mailto www@ogris.de. Send women, not mails ;-)
[2012-01-15] fproxy 0.41 - just a code cleanup
[2011-12-28] Simple DVD authoring on Linux
[2011-11-29] Removed ipv6.ogris.de and its 6to4 address. Published a real IPv6 address for www.ogris.de and ogris.de
[2011-11-06]
[2011-08-14] xmlrpc.pl el-cheapo XML-RPC with Perl and xinetd - don't try this in a hostile environment
[2011-08-05] How to join Unix-like systems to an Active Directory
[2011-08-01] Some thoughts about splice() on Linux
[2011-07-31] Updated after 4 years: fproxy 0.4 comes with a bugfix and an enhanced log format
[2011-07-07] Uploaded a CORBA howto which shows my experience with several ORBs
[2011-03-21] Got some strange error like input must be 8 bytes long at /usr/local/lib/perl5/site_perl/5.10.1/mach/Crypt/DES.pm line 59 with Perl's Net::SSH::Perl? Try my patch for DES.pm. It inserts a utf8::downgrade($data); in encrypt() and decrypt() along with a use utf8;.
[2011-03-21] I wrote a small server in C# that creates a thread for each connection. It looks like this:
TcpClient client = tcpListener.AcceptTcpClient(); MyHandler handler = new MyHandler(client); Thread thread = new Thread(handler.Run); thread.IsBackground = true; thread.Start();After it served some clients, I noticed in the Task Manager that it consumes several hundreds of RAM, holds thousands of handles, but only runs 15 threads. The Process Explorer revealed that these handles are thread handles. Turns out that you have to call thread.Abort() explicitly to get rid of those handles. So I added the following:
foreach (Thread t in allThreads) {
if (!t.IsAlive) {
t.Abort();
}
}
This is different from Java where a threads terminates as soon as its
run() method returns. Of course I could use
System.Threading.ThreadPool. But then I don't know which threads are
currently running unless I track each instance of MyHandler. For that I would
have to extend the MyHandler class:
class MyHandler {
private bool _running = true;
public void Run() {
try {
...
} finally {
_running = false;
}
}
public bool Running { get { return _running; } }
}
I don't like both of these approaches.
[2011-01-30] On my workstation at home I sometimes use qemu-kvm to start a virtualized Windows XP. For my personal reference I uploaded my qemu-wxp.sh and tun.sh shell scripts. Put the later one in /usr/local/libexec.
[2011-01-06] updated my short howto on IPv6, added a section called Impact on home networks
[2011-01-02] short howto on IPv6
[2011-01-01] IPv6 is here! See http://ipv6.ogris.de. Same stuff, different protocol. Magic!
[2010-11-28] With FreeBSD 8.1 running in VirtualBox, Jonsen Yang discovered that my patch for CARP IP loadbalancing panics the kernel. So I setup a VirtualBox on my Mac Mini, recompiled the kernel with options WITNESS, and encountered some non-sleepable locks being held. Here is an adjusted patch.
[2010-11-11] smtppipe version 0.21 fixes an embarrassing bug
[2010-11-01] uploaded two patches against Libidn 1.16 to support the
German ligature ß (sharp s, unicode codepoint 0x00df) as part of
IDNA2008 or IDNA-bis.
Put both files into /usr/ports/dns/libidn/files
on your FreeBSD box and do a portupgrade -f libidn
[2010-10-30]
[2010-09-20] Note to self:
... MENUDEFAULT=4,2 ... 1234?SHELLHIGH=C:\FDOS\bin\command.com ... ...