About

6/14/11

Vid: An underrated group: UFO

Some time ago I came across the group UFO after reading about the influences of my favorite band, Metallica. So I loaded up my torrent client and headed for one of my favorite bootleg sites, TTD. By chance, I somehow downloaded what was probably their best live performance, in London in 1974. Fast-forwarding trough the (seemingly uninteresting at first) DVD, I got sucked into a song called "This Kids", with this awesome guitar solo and really catchy riffs. I knew I had stumbled across a real talent. That was the door-opener I needed, and I started to listen more carefully to more of their records. That performance is with Michael Schenker on lead guitar, wich I found out was one of the founders of Scorpions. He also played in other bands, and was a bit on and off with UFO. He is said to be the guitarist that brought fast metal-style solos to the rock scene, and he also got famous for his sound. John Marshall was one of the people who tried to duplicate it. Kirk Hammett of Metallica usually mentions UFO when talking about past influences. I am almost finished with tabbing the whole song, let me know if you want it posted!


Recent Linux kernels doesn't like SB600 the chipset?

It seems kernels that came after or shortly after 2.6.24-29 does not support ATI's SB600 south bridge chipset that powers AMD's FX790 platform.

I've tried all recent Ubuntu variants as well as the newest OpenSUSE, FreeBSD and others. All of them fail to detect my SATA disks (because it doesn't detect the SCSI/SATA interface) and it's getting annoying now.
I can always install a module for a sound or network card. It would be different if it wasn't the hard disks.

I even tried several 'alternate ISO installs' and those found my disk during install and all went well, but it seems it couldn't just use that same driver again when the OS was supposed to boot. That would be too clever.

It appears that Ubuntu Hardy and it's forks are the last ones to operate my computer. Slackware 13.37 actually found my disks, but did not find my network interface.Sadly, I don't know much about Slackware and so I could not be bothered to figure out how to locate and install a proper driver. I've been dealing mostly with Ubuntu and it's Debian-based layout and tools.A commodity Realtek chipset from 4 years back MUST be supported in every distro. So must the SB600 chipset too!

I have installed an 8.04 based Mint version but it seems I somehow I managed to nuke all the Linux MBR's. (I am looking at you, various bootloaders that doesn't operate on the principle of least surprise).

Instead of shoveling out distros with less and less hardware support, why don't they cut down on other bloat instead? I am really excited about Puppy Linux and it's future, because it seems like this is the approach they take on it.

And so I can only boot into Windows at the moment. Oh the irony!

Coding: Pixel ripple effect

Obfuscated C code! This is the inner core loop of a water rippling effect, though I spent some time rearranging the code, because it looked cool for some reason. Do you get what is going on here ? :p
switch    (renderflag)          {
case      0                  :  {
for(int i=1; i < resy-1 ; i  ++ )  {
for(int j=1; j < resx-1 ; j  ++ )  {
    buf1   [ j ]     [ i     ]  =
    ((                          (
    buf2   [ j + 1 ] [ i     ]  +
    buf2   [ j - 1 ] [ i     ]  +
    buf2   [ j ]     [ i - 1 ]  +
    buf2   [ j ]     [ i + 1 ]  )
    >>                     1 )  -
    buf1   [ j ]     [ i     ] );
    buf1   [ j ]     [ i     ] -=
    buf1   [ j ]     [ i     ] >>
    7                           ;
    offsetx                     =
    buf1   [ j ]     [ i     ]  -
    buf1   [ j + 1 ] [ i     ]  ;
    offsety                     =
    buf1   [ j ]     [ i     ]  -
    buf1   [ j ]     [ i + 1 ]  ;
    _putpixel(  water, j , i   ,(
    128      -  offsetx        )&
    255                        );
    offsetx                   >>=
    8        ;  offsety       >>=
    8                           ;
    indexu   =  offsetx  + j    ;
    indexv   =  offsety  + i    ;
    if       (  indexu         >=
    resx     )  indexu         -=
    resx                        ;
    else if  (  indexu   < 0    )
    indexu                     +=
    resx                        ;
    if       (  indexv         >=
    resy     )  indexv         -=
    resy                        ;
    else if  (  indexv   < 0    )
    indexv                     +=
    resy                        ;
    _putpixel(  vscreen  , j    ,
    i                         ,((
    _getpixel(  backdrop        ,
    indexu                      ,
    indexv   )                 <<
    8                          )+
    _getpixel(  water, j , i   ))
    >>                     8   );
    }}}         break           ;
case 1                         :{
for(int i=1; i < resy-1 ; i  ++ )  {
for(int j=1; j < resx-1 ; j  ++ )  {
    buf2   [ j ]     [ i     ]  =
    ((                          (
    buf1   [ j + 1 ] [ i     ]  +
    buf1   [ j - 1 ] [ i     ]  +
    buf1   [ j ]     [ i - 1 ]  +
    buf1   [ j ]     [ i + 1 ]  )
    >>                     1 )  -
    buf2   [ j ]     [ i     ] );
    buf2   [ j ]     [ i     ] -=
    buf2   [ j ]     [ i     ] >>
    7                           ;
    offsetx                     =
    buf2   [ j ]     [ i     ]  -
    buf2   [ j + 1 ] [ i     ]  ;
    offsety                     =
    buf2   [ j ]     [ i     ]  -
    buf2   [ j ]     [ i + 1 ]  ;
    _putpixel(  water, j , i   ,(
    128      -  offsetx        )&
    255                        );
    offsetx                   >>=
    8        ;  offsety       >>=
    8                           ;
    indexu   =  offsetx  + j    ;
    indexv   =  offsety  + i    ;
    if       (  indexu         >=
    resx     )  indexu         -=
    resx                        ;
    else if  (  indexu   < 0    )
    indexu                     +=
    resx                        ;
    if       (  indexv         >=
    resy     )  indexv         -=
    resy                        ;
    else if  (  indexv   < 0    )
    indexv                     +=
    resy                        ;
    _putpixel(  vscreen  , j    ,
    i                         ,((
    _getpixel(  backdrop        ,
    indexu                      ,
    indexv   )                 <<
    8                          )+
    _getpixel(  water, j , i   ))
    >>                     8   );
    }}}         break           ;
    default:    break;          }