Autarchy of the Private Cave

Tiny bits of bioinformatics, [web-]programming etc

    • Archives

    • Recent comments

    Concise guide to CPU frequency scaling in Linux

    11th July 2008

    Debian HOW-TO: CPU power management / frequency scaling

    Also as a PDF: Debian how-to: CPU frequency scaling and power management.

    Share

    Posted in *nix, how-to, Links | No Comments »

    Enabling special buttons (keys) on laptops under Linux

    8th May 2008

    Note, that under Gnome I only had to use a single system-wide utility to bind volume buttons to volume control. Under KDE things were a tad tougher.

    First, you may want to look for kmilo (if you don’t have it yet). It has several plugins e.g. for ThinkPad and Vaio laptops, as well as “generic” plugin. I didn’t try this solution, though.

    If you need more than kmilo can offer: keyTouch could help. keyTouch should be good also for non-laptop multimedia keyboards. However, this also wasn’t the solution I used.

    If you want to know how to map your special keys to functions yourself – then read on.
    Read the rest of this entry »

    Share

    Posted in *nix, Links | 4 Comments »

    Instructions on installing libmp3lame-enabled ffmpeg on shared linux hosting

    12th March 2008

    Note: this post is based on the comment by Simon, who generously shared his experience.

    Step-by-step:

    • Download the compiled ffmpeg with libmp3lame support (direct download links: older version ffmpeg.with.lame and newer version ffmpeg.2007-10-28.with-libmp3lame-support).
    • Rename the downloaded executable file to “ffmpeg” (no extension), upload it to the directory on your server (in this example /home/myusername/).
    • Download libmp3lame.so.0.
    • Upload libmp3lame.so.0 to the same directory where you placed ffmpeg in.
    • Create a php file with the following code (remember to change the paths to your own, where you actually uploaded binaries in previous steps):
      1. <?php
      2. exec("export LD_LIBRARY_PATH=/home/myusername/");
      3. echo passthru("/home/myusername/ffmpeg -formats");
      4. ?>
    • If you access that PHP file with your browser, you should be able to see a list of formats which are supported by ffmpeg, and if you find “EA libmp3lame” somewhere in the output, then it means you now can Encode Audio in libmp3lame!
    • If that doesn’t work for you: LD_LIBRARY_PATH can be a protected variable in PHP (you can check for this by searching for the “safe_mode_protected_env_vars” value in phpinfo() output). The workaround here can be to write your commands to a file from php, then chmod that file with 0755 permissions (rwx-rx-rx), and run the file through exec(). In this way, PHP is not changing the LD_LIBRARY_PATH, but telling the server to run a file, which tells the server to change it. This method worked for the original author of these instructions.

    For passing arguments to the PHP wrapper script – check out PHP’s $argv variable (more on this here). If you decided to use shell-script as a wrapper for “export LD_LIBRARY_PATH”, then using $1, $2 etc will allow you to pass parameters to the shell script, e.g. in the example below

    1. #!/bin/bash
    2. export LD_LIBRARY_PATH=/home/myusername/
    3. /home/myusername/ffmpeg -i /home/myusername/$1 $2 /home/myusername/$3

    you could pass “input file” as first argument, “parameters” as second and “output file” as third to make such a wrapper script work.

    Share

    Posted in *nix, PHP, Programming, Software, Web | 19 Comments »

    ext2 and ext3 linux partitions read-write support in Windows

    25th October 2007

    Get the driver!

    There’s also another one, but provides read-only support.

    Share

    Posted in Links | 3 Comments »

    GoDaddy: undocumented 20-second CPU time maximal execution limit? (python, ELF, etc)

    16th October 2007

    Today, setting up a relatively serious (in CPU resources needed) web-system, I ran into a weird problem of python scripts ending prematurely. After some investigation, it looked like any process which uses up more than 20 seconds of CPU time, is automatically killed. To verify this, I wrote an infinite loop in C,

    int main () {
    unsigned int i;

    for (i = 0; i < 2 ; i++ ) { i = 0; } return 0; } [/c] compiled it and executed several times on the GoDaddy shared hosting server. I did observe the program running for the maximum of 20 seconds of CPU time, not a second more. Please note, that 20 seconds of CPU time can be much more of “real” time, if the script isn’t using 100% of CPU, which often the case for shared hosting. Thus if you have in your php.ini max_execution_time set to, say, 60 seconds, your php script may actually execute as long as one minute; but I’m pretty sure that if your script has lots of CPU-intensive procedures, then as soon as it uses 20 seconds of CPU time, it will be terminated (however, this statement still needs checking – anyone?). To verify, I also created a cron job with the same file. It ran for 30 seconds CPU time. Strangely, this behaviour is not documented anywhere. This limit may also explain a number of other problems, if you have heavy web-applications: they just might be killed before they are finished, causing errors. I do understand the reason for this limitation, and am sure similar limitations exist in other shared hosting environments. The only important thing here is that this limit should have been documented and even put upfront somewhere in the hosting plans descriptions. I also wonder if the limit is the same for all godaddy shared hosting plans, or if it differs. 20 seconds when executed from PHP, and 30 seconds when executed as a cron job were observed on the Deluxe Linux Hosting plan. Extensions, additions and comments are welcome.

    Share

    Posted in *nix, Misc, Programming, Web | 22 Comments »

    Compiled linux ffmpeg binary for Gallery2: download

    28th June 2007

    Updated on Apr 8, 2008.

    Stimulated by the post of Eric Daniel (who used to have a blog at termitenshort.com), I compiled the most recent ffmpeg SVN source into Linux binary, which runs fine on my shared hosting (note: I’m using older ffmpeg binaries, which are at the end of the post).

    mini-FAQ:
    Q: Why the title has “for Gallery2″?
    A: Just because I avoided the inclusion of libraries, which were not found on my shared hosting server. I hope this will work for other shared hosting environments.

    Configuration, version and date can be found in the output of ffmpeg.

    Versions built on April, 8, 2008:
    ffmpeg (no lame) (checked: can be executed on godaddy shared hosting)

    FFmpeg version SVN-r12769, Copyright (c) 2000-2008 Fabrice Bellard, et al.
    configuration: –enable-gpl –enable-postproc –enable-swscale –enable-pthreads –disable-debug –enable-gray –disable-ffserver –disable-ffplay –enable-avfilter –disable-network –disable-ipv6
    libavutil version: 49.6.0
    libavcodec version: 51.54.0
    libavformat version: 52.13.0
    libavdevice version: 52.0.0
    libavfilter version: 0.0.0
    built on Apr 8 2008 15:13:14, gcc: 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
    usage: ffmpeg [[infile options] -i infile]… {[outfile options] outfile}…

    ffmpeg (with lame). For this one, grab libmp3lame.so.

    FFmpeg version SVN-r12769, Copyright (c) 2000-2008 Fabrice Bellard, et al.
    configuration: –enable-gpl –enable-postproc –enable-swscale –enable-pthreads –disable-debug –enable-gray –disable-ffserver –disable-ffplay –enable-avfilter –disable-network –disable-ipv6 –enable-libmp3lame
    libavutil version: 49.6.0
    libavcodec version: 51.54.0
    libavformat version: 52.13.0
    libavdevice version: 52.0.0
    libavfilter version: 0.0.0
    built on Apr 8 2008 15:44:31, gcc: 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)

    Based on single request: ffmpeg (with lame and libfaac and libfaad). For this one, grab libfaac.so and libfaad.so.

    FFmpeg version SVN-r12769, Copyright (c) 2000-2008 Fabrice Bellard, et al.
    configuration: –enable-gpl –enable-postproc –enable-swscale –enable-pthreads –disable-debug –enable-gray –disable-ffserver –disable-ffplay –enable-avfilter –disable-network –disable-ipv6 –enable-libmp3lame –enable-libfaac –enable-libfaad
    libavutil version: 49.6.0
    libavcodec version: 51.54.0
    libavformat version: 52.13.0
    libavdevice version: 52.0.0
    libavfilter version: 0.0.0
    built on Apr 8 2008 23:53:57, gcc: 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)

    As an experiment, here’s ffmpeg freebsd binary without lame support. Did ran on some FreeBSD 6.3 hosting.

    FFmpeg version SVN-r12769, Copyright (c) 2000-2008 Fabrice Bellard, et al.
    configuration: –enable-gpl –enable-postproc –enable-swscale –enable-pthreads –disable-debug –enable-gray –disable-ffserver –disable-ffplay –enable-avfilter –disable-network –disable-ipv6 –target-os=freebsd
    libavutil version: 49.6.0
    libavcodec version: 51.54.0
    libavformat version: 52.13.0
    libavdevice version: 52.0.0
    libavfilter version: 0.0.0
    built on Apr 8 2008 16:15:38, gcc: 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)

    Versions built on Ocotber, 28, 2007:
    download ffmpeg without libmp3lame support

    FFmpeg version SVN-r10867, Copyright (c) 2000-2007 Fabrice Bellard, et al.
    configuration: –enable-gpl –enable-pp –enable-swscaler –enable-pthreads

    –enable-libogg –enable-libvorbis –disable-debug
    libavutil version: 49.5.0
    libavcodec version: 51.47.1
    libavformat version: 51.17.0
    built on Oct 28 2007 22:46:10, gcc: 3.4.6

    download ffmpeg with libmp3lame support

    FFmpeg version SVN-r10867, Copyright (c) 2000-2007 Fabrice Bellard, et al.
    configuration: –enable-gpl –enable-pp –enable-swscaler –enable-libmp3lame

    –enable-pthreads –enable-libogg –enable-libvorbis –disable-debug
    libavutil version: 49.5.0
    libavcodec version: 51.47.1
    libavformat version: 51.17.0
    built on Oct 28 2007 23:04:59, gcc: 3.4.6

    Shared hosting testing reports are welcome.

    Below you can find even older versions of ffmpeg, which were tested and found functional on GoDaddy shared hosting.
    Read the rest of this entry »

    Share

    Posted in *nix, CMS, Software, Web | 49 Comments »

    Topologilinux 6.0.0 BSOD (Blue Screen Of Death) fix

    1st September 2006

    Topologilinux ‘BSOD at launch’ problem solution is at the end of this post.

    Topologilinux is a special linux flavour, which is especially fit for the newcomers to the *nix world. The motto of Topologilunux is ‘Running Linux inside Windows’ – and that is what it does. Even more – you can run it inside windows, or you can boot into it and work Linux-only – in both cases the system is the same.
    Personally, I consider this kind of setup extremely useful for users who are strongly used to working in Windows (or just stuck with windows for too long), but at the same time are inclined to script a bit (be it bash, Perl, PHP or Python), to run server applications, write cross-platform programs, to test something or just play with software. With Topologilunux, it’s perfectly fine to work in DreamWeaver on your windows machine, and launch Topologilinux with apache+php+mysql to serve as a testing server – on that same machine. You can easily replicate the needed server config, and play with it the way you wouldn’t if that was the production server.
    Read the rest of this entry »

    Share

    Posted in *nix, OS | 1 Comment »