Andrew Que Sites list Photos
Projects Contact
   After years of wanting a reason, I\'ve finally implemented an FFT.  It\'s part of a bandpass filter function used for a work project to clean up analog signals.  The implementation was pretty smooth, although it took a serious toll on performance of the system.  The results were excellent.  The waveforms after the filter were exactly what we expected to see.
   Part of the experimenting process involved finding some PHP code of the FFT algorithm.  It was rather useful in doing the rapid development and I\'ve considered writing an article demonstrating filtering using FFTs with PHP scripts.  But, I\'ll have to find the time ;)
   I tried to get \'svgalib\' working today, but no luck.  As an old DOS guy, I miss being able to just do whatever you wanted to hardware from any application.  It\'s very useful having the ability to directly access video cards and do graphics directly.  svgalib seemed like it would be the answerer... but if it doesn\'t want to work, it isn\'t much use :(
   Today we explored pipes and FIFOs (named pipes)-- the Linux/Unix system that allows two separate processes to communicate.  We were looking to improve a system we developed using a TCP/IP connection.  The reality was that most of the time, the TCP/IP connection was to the loopback-- that is, the local machine.  The thought was, we could cut the unneeded overhead of TCP/IP by using a more direct system.  Named pipes seemed logical for this.
   We ran into a couple of issues that took some time to figure out.  Communications happened between an application and a PHP script.  PHP is called from Apache and Apache runs with the user ID \"nobody\".  The application had been launched by \"root\" and thus, the named pipes required root access.  This was despite the fact we gave everyone read/write access when creating the file (0666 as the umask).  Anyhow, after we manually put the file ownership to \"nobody:nogroup\", the system worked fine.
   For all the effort, there was no noticeable speed increase from changing the local TCP/IP connection method of transferring data to named pipes.  But it was worth exploring.