Steady as a rock

…or so they say

 

Huisdieren

Sommige mensen hebben een hond als huisdier, of een kat. Soms kom je nog hamsters tegen, of ratten. Zelfs slangen zijn nog redelijk gewild. Maar niemand heeft zwanen als huisdier.

Behalve wij big_smile.png

Nu het zo koud is voeren we een (echt)paar zwanen in de buurt nogal eens wat brood. Dat weten ze zo goed dat ze naar ons toe lopen of uit het water vliegen(!) als ze ons zien. Of ze komen gewoon naar ons huis toe gewaggeld en beginnen te snateren dat ze honger hebben Smile Best gezellig hoor, van die grote beesten die uit je hand eten - mensen die het zien kijken er alleen nogal verbaasd naar Knipoog

Filed under : Personal
By Dennis Kaarsemaker
On January 30, 2006
At 21:04
Comments :1
 
 

Argh @ Linux 2.6.12

En hierom was dynamite dus stuk:

[PATCH] Randomisation: mmap randomisation

The patch below randomizes the starting point of the mmap area.

This has the effect that all non-prelinked shared libaries and all bigger
malloc()s will be randomized between various invocations of the binary.
Prelinked binaries get a address-hint from ld.so in their mmap and are thus
exempt from this randomisation, in order to not break the prelink advantage.
The randomisation range is 1 megabyte (this is bigger than the stack
randomisation since the stack randomisation only needs 16 bytes alignment
while the mmap needs page alignment, a 64kb range would not have given enough
entropy to be effective)

En zo fix je dat dus:

#include <stdio.h>
#include <linux/personality.h>
#include <sys/syscall.h>
#include <unistd.h>

#ifndef ADDR_NO_RANDOMIZE
#define ADDR_NO_RANDOMIZE (0x0040000)
#endif

int main(int argc, char* argv[]) {
    char buf[21];
    int sc_ret;
    FILE* fd;

#ifdef FIXMAPS
    sc_ret = syscall(SYS_personality,ADDR_NO_RANDOMIZE);
    if(!sc_ret) { /* Syscall succeeded, execute ourselves again */
        execvp(argv[0],argv);
    }
    else if(!(sc_ret & ADDR_NO_RANDOMIZE)) { /* Setting personality failed */
        perror("Setting personality failed");
        exit(1);
    }
#endif
    fd = fopen("/proc/self/maps", "r");

buf[20] = '';
    while(!feof(fd)) {
        fread(buf, 1, 20, fd);
        fputs(buf,stdout);
    }
}

Compileer met gcc -o main main.c en run het meerder malen. De mappings veranderen steeds. Compileer daarna met gcc -o main main.c -DFIXMAPS en je ziet: de mappings blijven hetzelfde. De stack mapping is wel nog steeds stuk, maar die wordt toch op een andere manier teruggezet. Ik heb goede hoop dat dit alle problemen oplost

Filed under : UvA
By Dennis Kaarsemaker
On January 12, 2006
At 20:41
Comments :1
 
 

Linux distribution chooser

De linux distribution chooser is best leuk. Volgens dat ding zou ik voor Ubuntu of Debian moeten gaan, goh…Knipoog

Filed under : Uncategorized
By Dennis Kaarsemaker
On
At 14:05
Comments :1
 
 

Persistent Live CD

Casper is lief. Go Tollef!

Filed under : Ubuntu
By Dennis Kaarsemaker
On January 10, 2006
At 22:15
Comments :1
 
 

WTF!

Deze kwam een collega vandaag tegen, geschreven door een andere collega. Ik stuur hem zometeen naar The daily WTF! maar wou hem hier ook even kwijt.

struct foo {
  uint64 bar;
  uint64 baz;
};
struct foo* a;

/*
 * Dit is het dus:
 *
 * Hoe bereken je a+b zo moeilijk mogelijk:
 */

uint32 i1;
int64 i2 = (int64)a->bar;

if(i2 >= 0)
  i1 = (uint32)(a->baz + (int64)i2);
else if (i2 < 0) {
  i2 *= (-1);
  i1 = (uint32)(a->baz - (int64)i2);
}
Filed under : Uncategorized
By Dennis Kaarsemaker
On January 5, 2006
At 20:30
Comments :1
 
 

GPL staat niet gelijk aan bijdragen aan de FOSS gemeenschap

De meeste mensen denken dat het vrijgeven van software onder de GNU General Public License gelijk staat aan het doen van een bijdrage aan de open source/vrije software gemeenschap. Dit is niet waar. Het meest vervelende voorbeeld waar ik zelf mee te maken heb is NX. De mensen van NoMachine hebben iets heel leuks gebouwd waarmee je snel en (relatief) simpel remote desktop verbindingen kan maken van linux of windows naar linux. Nog leuker is dat zehet vrijgegeven hebben onder de GPL. Maar nu het slechte nieuws:

  • De kern van NX is een aangepaste xnest server en een eigen protocol. De Xnest server is gebaseerd op een random cvs checkout van Xfree86 uit 2003, het protocol is niet standaard. Ergo:
    • Security fixes sinds 2003 zijn niet opgenomen in de NX broncode
    • XFree is dood - X.org is de toekomst. Maar NX gebruikt xfree
    • Het protocol kan niet door een ander geimplementeerd worden
  • De client en de NX server zijn niet open source, alleen de protocol/compressie libraries en de aangepaste Xnest server. Zonder de bijdragen van het FreeNX team was er dus helemaal niet voor de open source wereld
  • NoMachine is totaal niet geïnteresseerd in samenwerking, overstappen naar X.org of andere zaken die zouden helpen om van NX echt een succes te maken.

Oftewel: vrijgeven is leuk, maar doe het wel op een manier dat het echt vrij en open is zodat anderen er ook iets mee kunnen (Een GTK based client ofzo…)

Update: 2x.com is erg interessant!

Filed under : Uncategorized
By Dennis Kaarsemaker
On January 4, 2006
At 13:19
Comments :1
 
 

NTFS schrijven

Loe,

Kijk eens naar ntfsprogs uit dapper. Daar zit een fuse module bij die dit al lang allemaal kan (en meer). Backport voor Breezy vind je in mijn repo Smile

Filed under : Uncategorized
By Dennis Kaarsemaker
On
At 10:45
Comments :1