Draft: How to create a pifr 6.x-2 client
This is mostly a cleaned up recounting of my .bash_history files and might not work.
As root, execute the following on commandline for a fresh install of Ubuntu 9.04 Jaunty:
apt-get update
apt-get upgrade
apt-get install build-essential mysql-server-5.0 apache2 apache2-threaded-dev php5 php5-cgi php5-cli php5-gd php5-common php-pear php5-curl php5-mysql cvs curl php5-curl php5-suhosin php5-sqlite php5-mcrypt php5-pgsql php5-dev libapache2-mod-php5 gawk patch sqliteNote: you can do mysql-server-5.1 in Jaunty, but the client will default INNO when the master only has ISAM as a choice, so you would need to edit
/etc/mysql/my.cnf to uncomment skip-innodb. Then /etc/init.d/mysql restart That will make sure only ISAM is available when your checkout installs.a2enmod rewrite
a2enmod expires
/etc/init.d/apache2 force-reload
cd /opt
wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
tar -xvjf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3
phpize
sudo ./configure --with-eaccelerator-shared-memory --with-eaccelerator-sessions
sudo make
sudo make install
vi /etc/php5/conf.d/eaccelerator.iniextension = eaccelerator.so
eaccelerator.shm_size = 32
eaccelerator.cache_dir = /var/cache/eaccelerator
eaccelerator.enable = 1
eaccelerator.optimizer = 1
eaccelerator.check_mtime = 1
eaccelerator.debug = 0
eaccelerator.filter = ""
eaccelerator.shm_max = 0
eaccelerator.shm_ttl = 0
eaccelerator.shm_prune_period = 0
eaccelerator.shm_only = 1
eaccelerator.compress = 1
eaccelerator.compress_level = 9
cd /var/www
vi phpinfo.php
cd /etc/php5/apache2/
vi php.ini
# change memory_limit = 256, short_open_tag Off, expose_php = Off
cd ../cli
vi php.ini
# change memory_limit = 256 and short_open_tag Off, expose_php = Off
/etc/init.d/apache2 force-reload
adduser drupaltesting
cd /etc/apache2/sites-available/
cp default drupaltesting.deekayen.net
vi drupaltesting.deekayen.netNameVirtualHost drupaltesting.deekayen.net
<VirtualHost *:80>
ServerAdmin x@deekayen.net
ServerName drupaltesting.deekayen.net
DirectoryIndex index.php
DocumentRoot /home/drupaltesting/web/public
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/drupaltesting/web/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
a2ensite drupaltesting.deekayen.net
/etc/init.d/apache2 force-reload
vi defaultNameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName slice.deekayen.net
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
/etc/init.d/apache2 force-reload
mysqladmin -u root -p create drupal
mysqladmin -u root -p create drupal_checkout
crontab -e*/10 * * * * /usr/bin/wget -O - -q -t 1 http://drupaltesting.deekayen.net/cron.php
Now as the drupaltesting user, do:
mkdir web
cd web
cvs -d :pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal-contrib login
cvs -z6 -d :pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal checkout -r DRUPAL-6-12 drupal
mv drupal public
cd public/sites/all
mkdir modules
cd modules
cvs -z6 -d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal-contrib checkout -r DRUPAL-6--1 -d cvs_deploy contributions/modules/cvs_deploy
cd ../..
mkdir drupaltesting.deekayen.net
cp default/default.settings.php drupaltesting.deekayen.net/settings.php
cd drupaltesting.deekayen.net/
vi settings.php$db_url = array();
$db_url['default'] = 'mysqli://username:password@localhost/drupal';
$db_url['pifr_checkout'] = 'mysqli://username:password@localhost/drupal_checkout';
mkdir files
chmod 777 files
cd files
mkdir checkout
chmod 777 checkout
cd ../../../
ln -s ./sites/drupaltesting.deekayen.net/files/checkout .
cd sites/drupaltesting.deekayen.net/modules/
cvs -z6 -d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal-contrib checkout -d project_issue_file_review contributions/modules/project_issue_file_review
exitOn the client, enable CVS Deploy, PIFR, and PIFR Client modules. Then get an account on the master server. Add a client of type Test on the master and copy the key to the client at admin/pifr/configuration. The client defaults are OK. Make sure all the command line tools have output at admin/pifr/client on the client.
I occasionally got "When requesting next test, server responded: Invalid server" errors on my client when I did have the right API key, so I altered the client xmlrpc file to include some extra debugging calls to watchdog. After many long tests, I realized my server was going beyond the default 45 minute limit set on the server to timeout a runaway test. I increased it to 200 and finally passed.
Copying voice quality audio with Rhythmbox
I spent some time trying to figure out how to make files small enough to put an entire audiobook on my 1GB MP3 player with Rhythmbox. The default CD quality MP3 settings for Rhythmbox made the book too large, so I spent some time figuring out the special GStreamer pipe for sending the audio to lame for lower quality conversion.
In Edit - Preferences - Music, edit the Preferred format. Add a new one named "Voice Quality, MP3". My description is "Target 80 Kbit/s for variable bitrate copies."
Since you can't just man lame or lame --longhelp to get the correct parameters, I found out you need to first sudo apt-get install gstreamer-tools. That installs gst-inspect, which you can use to find the Rhythmbox GStreamper pipeline options by doing gst-inspect lame | less.
audio/x-raw-int,rate=32000,channels=1 ! lame name=enc mode=3 vbr=4 vbr-mean-bitrate=80 vbr-min-bitrate=32 vbr-max-bitrate=128 ! id3v2mux
That line tells lame to encode, as mono (mode=3) with the new lame vbr algorithm (mode 4), with a mean bitrate of 80, and lows and highs of 32 and 128 respectively. The 32000 downsamples from the high quality 44100 and channels=1 turns the original's stereo into mono. If you leave out the highs and lows, the defaults are 112 and 160, which will override the 80 average you asked for.
Did you check your Chexsystems report?
You might already be monitoring your credit reports with Experian, Equifax, and Transunion, or better yet have frozen your files. Have you checked or frozen your Chexsystems file? Chexsystems is who banks report to about your relationship on deposit accounts. If you overdraw your checking account too much, your bank likely reports you to Chexsystems. Having a frozen Chexsystems file might prevent an ID thief from opening fraudulent deposit accounts in your name.
Install Flash in Flock 2.5 on Ubuntu Jaunty
I installed Flock 2.5 on my Ubuntu Jaunty machine. I had some trouble getting Flock to use the Flash plugin until I realized that my base install is amd64, my Mozilla deb is amd64, and my flashplugin-alternative.so file was then also compiled for amd64.
Note that the Flock 2.5 package on flock.com is i686, which meant that the amd64 plugin wouldn't load by merely doing a symbolic link to the mozilla plugins directory (ln -s /usr/lib/mozilla/plugins /opt/flock/plugins).
While I did have success with doing sudo apt-get install flashplugin-nonfree for Firefox, my solution for Flock was to get the proprietary version directly from Adobe and copy the libflashplayer.so directly from the tarball to /opt/flock/plugins. That seems to work for me.
I also found through this research that by going to about:config, you can toggle plugin.expose_full_path to see where your plugins are actually installed at when you visit about:plugins.
New D7 feature: logged module changes
When I saw NancyDru's idea to log who installs and uninstalls a module, I had a "duh!" moment. This to me was like one of those things that should have been done 5 major releases ago. If only I had been smart enough to think of it myself back then, I wouldn't have had to write tests for it :) So naturally, now it is going to be part of Drupal 7.

