Wednesday, March 30, 2011

ImageMagick: Make thumbs of images

For example to make jpg thumbs of all tiff images in a current director one can use:for f in *.tiff; do bname=`basename $f .tiff` ; convert -resize 256x256 $f ./thumbs/$bname.jpg; done

Thursday, March 17, 2011

ImageMagick: Flatten and convert an image to grayscale

In short, to flatten and convert to grayscale all images in current director one can use: mogrify -flatten -type Grayscale *or mogrify -flatten -alpha remove *.tiff

Tuesday, March 08, 2011

An example file upload progress monitoring in Zend Framework 1.11

An example web application demonstrating usage of Zend_ProgressBar and jquery progressbar for monitoring progress of file uploads in Zend Framework 1.11.3.

Since file uploads are done to the folder APPLICATION_PATH/uploads, the application tries to create this folder if it does not exists. For this reason APPLICATION_PATH should be writable, or uploads folder created manually with necessary rights. The application also requires 'uploadprogress' PECL package since it uses 'uploadprogress_get_info' function for getting the information about upload progress.



The source code is at GitHub. Most action happens in indexController.php and index.phtml.

Sunday, February 27, 2011

An example of OpenID, Facebook and Twitter authentication in Zend Framework 1.11

This is an example Zend Framework 1.11.3 application that uses OpenID (Google,
Yahoo, MyOpenId, AOL, OpenId) as well as Facebook Connect and Twitter Oauth for
authentication of users.

During authentication, information about a user (e.g. an email or a country) is fetched from the authentication provider.

Zend Framework 1.11 does not have a very good support for OpenID, not mentioning Facebook Connect and Twitter Oauth. Thus, to make it all work the following elements were used:
In some cases slight modifications to the above elements were made.

The demo of this application is here , while the source code is at GitHub. The user authentication is performed in a loginAction in UserController.php.

Hopefully, this example application will be useful to others as it was for me.

Sunday, February 06, 2011

Drupal 7: Add last update date to the footer of the page

I needed to add a date of last modification of the website made in Drupal 7. I did it by enable core module PHP Filter and creating a block located a footer block region. The body of the block was as follows:
<?php
// get date of most most recent change to a node
$result = db_query('SELECT title, changed FROM {node} WHERE status=1 ORDER BY changed DESC LIMIT 1');
$node = $result->fetchObject();
$date = date('d-M-Y g:i a', $node->changed);
echo "Last update: $date";
?>

Saturday, January 22, 2011

Pear run-tests: Setting --cgi option to test file uploads using phpt

In PHP, file uploads can be tested using phpt files as explained here. However, when I wanted to execute phpt test with --POST_RAW-- or --POST-- sections, pear run-tests was giving an error that: --cgi option needed for this test, type 'pear help run-tests' My phpt file was as follows: The layout of phpt files is explained here. To overcome this problem I installed php5-cgi package for ubuntusudo apt-get install php5-cgiThis allowed for correct execution of the testpear run-tests --cgi=/usr/lib/cgi-bin/php5 example-upload.phpt
Running 1 tests
PASS Example test emulating a file upload[example-upload.phpt]
TOTAL TIME: 00:00
1 PASSED TESTS
0 SKIPPED TESTS

Sunday, January 02, 2011

Ubuntu 10.10: Change grub menu timeout

Default grub menu timeout is 10 seconds. To change it just edit the grub filesudo vim /etc/default/grub and change GRUB_TIMEOUT value from 10 to e.g. 2. Then update grubsudo update-grubAfter the restart the time before boot your default operating system be 2 seconds.

Alternatively, one can install GUI grub editor called StartUp-Manager sudo apt-get install startupmanager

Monday, December 13, 2010

Ubuntu 10.10: static and noise sound with HDA Intel SigmaTel STAC9221 A1

I have just installed Ubuntu 10.04 and I found that my sound card was not working. There was a lot of breaks, noise and freezes when I was playing any audio file.

This is what I have: aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: STAC92xx Digital [STAC92xx Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.23.
cat /proc/asound/card0/codec#* | grep Codec
Codec: SigmaTel STAC9221 A1


I overcame this problem simply by adding the following line:options snd-hda-intel model=ref into the file /etc/modprobe.d/alsa-base.conf:sudo gedit /etc/modprobe.d/alsa-base.conf

Monday, June 21, 2010

"Remote desktop session has ended" error when connecting to a guest on VirtualBox

I had a problem connecting from Windows using build-in Remote Desktop Connection program to a a guest on a headless VirtualBox server. I found that the reason wast that I did not checked "Allow me to save credentials" option in a Remote Desktop Connection.
With this option, the client will ask for username/password before connecting to the VirtualBox. Thus it seems, that VirtualBox requires user credentials at the very beginning of the session. Without this option, connections will fail.

I was using VirtualBox 3.2.4 in a headless mode running on a CentOS 5.5 x86_64.

Saturday, May 29, 2010

Example of SSH tunneling

Example:
ssh -N -L 5904:127.0.0.1:5901 username@remoteserverThe above command forwards everything on localhost port 5904 to the port 5901 on remoteserver. This is what I use to connect to a VNC service on port 5901 on a remoteserver at my job from my home computer. Thus, at home, after establishing the above tunnel I can use a vncviewer as follows:vncviewer :4