Batch image resize
To mass resize image files, you need ImageMagick
yum install ImageMagick
To resize:
cd image-folder/ mogrify -resize 800px *.jpg
Note: 800px is the width, it’ll keep the aspect ratio of the image

Imagic
To mass resize image files, you need ImageMagick
yum install ImageMagick
To resize:
cd image-folder/ mogrify -resize 800px *.jpg
Note: 800px is the width, it’ll keep the aspect ratio of the image

Imagic
(Update: Using Fedora 16)
Install mod_wsgi for apache
yum install mod_wsgi
Edit apache config: (/etc/httpd/conf/httpd.conf)
ServerName hostname:80
Workaround for mod_wsgi 2.x in Fedora, move this line:
Include conf.d/*.conf
… to below these lines:
User apache Group apache
Add this to the end of the config file: (/etc/httpd/conf.d/wsgi.conf)
<IfModule mod_wsgi.c> WSGISocketPrefix /var/run/wsgi </IfModule>
Using TG2 demo app from the previous post (HelloWorld), create apache config file for this app: (/etc/httpd/conf.d/HelloWorld.conf)
Listen 8080
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerAdmin webmaster@hostname
ServerName hostname
ErrorLog logs/hostname-error_log
CustomLog logs/hostname-access_log common
Alias /images/ /var/www/HelloWorld/images/
Alias /css/ /var/www/HelloWorld/css/
Alias /javascript/ /var/www/HelloWorld/javascript/
WSGIDaemonProcess HelloWorld threads=10 processes=3
WSGIProcessGroup HelloWorld
WSGIScriptAlias / /var/www/HelloWorld/HelloWorld.wsgi
<Directory /var/www/HelloWorld>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Create directory for static contents (do these as root):
mkdir -p /var/www/HelloWorld/python-eggs
Create wsgi script for apache to launch this app: (/var/www/HelloWorld/HelloWorld.wsgi)
import os, sys, site
appname = 'HelloWorld'
prev_sys_path = list(sys.path)
site.addsitedir('/usr/local/pythonenv/%s/lib/python2.6/site-packages' % appname)
new_sys_path = []
for item in list(sys.path):
if item not in prev_sys_path:
new_sys_path.append(item)
sys.path.remove(item)
sys.path[:0] = new_sys_path
sys.path.append('/usr/local/turbogears/%s' % appname)
from pkg_resources import working_set, Environment
env = Environment('/usr/local/pythonenv/%s' % appname)
env.scan()
distributions, errors = working_set.find_plugins(env)
for dist in distributions:
working_set.add(dist)
os.environ['PYTHON_EGG_CACHE'] = '/usr/local/turbogears/%s/python-eggs' % appname
from paste.deploy import loadapp
application = loadapp('config:/usr/local/turbogears/%s/production.ini' % appname)
Move TG2 public folder to static contents folder:
cp -r HelloWorld/helloworld/public/* /var/www/HelloWorld chown -R apache.apache /var/www/HelloWorld
Move TG2 app to application folder:
mkdir -p /usr/local/turbogears cp -r HelloWorld/ /usr/local/turbogears/
Create production config file of the app:
cd /usr/local/turbogears/HelloWorld cp development.ini production.ini
Set debug to false: (/usr/local/turbogears/HelloWorld/production.ini)
debug=false
Set permission:
chown -R apache.apache /usr/local/turbogears
Finally, restart apache:
service httpd restart
Now, browse to http://localhost:8080

Users synchronize their calendar in Thunderbird with calendar server (WebDAV) on Fedora
Install Thunderbird & calendar plugin:
yum install thunderbird thunderbird-lightning
Install apache + mod dav:
yum install httpd mod_dav_svn
Calendars will be stored in /home/webmaster/calendar. Make sure to chmod 755 /home/webmaster
Setting up apache:
(/etc/httpd/conf.d/mod_dav.conf)
<IfModule mod_dav.c>
Alias /calendar /home/webmaster/calendar
<Directory /home/webmaster/calendar>
DAV On
Options +Indexes
AuthType Basic
AuthName "Calendar Authentication"
AuthUserFile /home/webmaster/calendar.htpasswd
<LimitExcept GET OPTIONS>
require valid-user
</LimitExcept>
Order allow,deny
Allow from all
</Directory>
</IfModule>
<Directory /home/webmaster/calendar>
AuthUserFile /home/webmaster/calendar.htpasswd
AuthName "Calendar Authentication"
AuthType basic
require valid-user
</Directory>
Create user & password:
htpasswd -cb /home/webmaster/calendar.htpasswd username password
Create calendar directory & set permission:
mkdir /home/webmaster/calendar chown -R apache /home/webmaster/calendar
Test the new configuration:
touch calendar.ics cadaver http://localhost/calendar put calendar.ics
Refer /var/log/httpd/error_log if there’s any error. Always check folder permission.
Create new calendar for Thunderbird (calendar name: Personal):
touch Personal.ics cadaver http://localhost/calendar [Authentication] put Personal.ics
Launch Thunderbird

Create new event for the new calendar
This post shows how to install Turbogears2 (TG2) in a Python virtual environment. (Update: Using Fedora 14)
Install required software:
yum install python-setuptools python-virtualenv
PostgreSQL dependencies (needed by PyGreSQL):
yum install gcc postgresql-devel
Install TG2 in virtual env: (as root)
mkdir -p /usr/local/pythonenv virtualenv --no-site-packages /usr/local/pythonenv/HelloWorld
Activate virtual env:
source /usr/local/pythonenv/HelloWorld/bin/activate
Install PostgreSQL database components: (in virtualenv, as root)
easy_install PyGreSQL easy_install psycopg2
Install TG2.1: (in virtualenv, as root)
easy_install -i http://www.turbogears.org/2.1/downloads/current/index tg.devtools easy_install -i http://www.turbogears.org/2.1/downloads/current/index Genshi easy_install tw.jquery
Start developing TG2 app:
Activate virtualenv first (as regular user – ‘webmaster’)
source /usr/local/pythonenv/HelloWorld/bin/activate
Create TG2 app:
paster quickstart HelloWorld
Install required packages for this new app: (in virtual env, as root)
cd HelloWorld/ python setup.py develop
Make sure to use new PostgreSQL DSN format: (development.ini)
postgresql://username:password@hostname:port/databasename
Populate database (as regular user, refer HelloWorld/helloworld/websetup.py)
paster setup-app development.ini
Launch TG standalone server
paster serve --reload development.ini
… and start coding / debugging at http://localhost:8080
To change default URL address: (development.ini)
[server:main] host = 192.168.56.101 port = 5000

Turbo + Gear
PostgreSQL (Update: Using Fedora 14)
Install PostgreSQL & phpPgAdmin (web-based Postgres administration)
yum install postgresql postgresql-server phpPgAdmin
Initialize database
service postgresql initdb
Start PostgreSQL service
service postgresql start
Create password for user ‘postgres’ (in the system)
passwd postgres
Login as user ‘postgres’
su - postgres
Create password for user ‘postgres’ (in the database)
psql -d template1 alter user postgres with password 'password';
Exit psql shell:
\q
Let Postgres allow authentication using password: (/var/lib/pgsql/data/pg_hba.conf)
# TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all md5 local all all ident # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 127.0.0.1/32 ident # IPv6 local connections: host all all ::1/128 md5 host all all ::1/128 ident
Note:
md5 – allow authentication using password
ident – authentication as system user
Restart PostgreSQL
service postgresql restart
Enable service:
chkconfig postgresql on
phpPgAdmin
Create phpPgAdmin by copying from original config file: (/usr/share/phpPgAdmin/conf)
cp config.inc.php-dist config.inc.php
Allow login from phpPgAdmin: (/usr/share/phpPgAdmin/conf/config.inc.php)
$conf['extra_login_security'] = false;
Apache setting, add your IP address to allow access to the application (/etc/httpd/conf.d/phpPgAdmin.conf)
Allow from 192.168.56.1
Reload httpd. Open phpPgAdmin (http://localhost/phpPgAdmin). Login as ‘postgres’
Add new user: (PostgreSQL > Roles > Create role)

Create role (user) 'webmaster', inherits privileges from user 'postgres' & allow login
Create database: (PostgreSQL > Database > Create database)

Create database 'helloworld' using Unicode encoding
Grant permission on database: (PostgreSQL > helloworld > Privileges > Grant)

User 'webmaster' is granted 'All privileges'
Check connection & configuration
psql -h localhost helloworld webmaster
This installation exclude desktop environment, therefore it uses only command line interface. (Update: Based on Fedora 14)
During installation of Fedora, for software set, select ‘Minimal’, then choose to ‘Customize Now’. In customization section, for ‘Servers’ category, select only servers that you need: Web Server, PostgreSQL; then for ‘Base System’ category, select ‘Administration Tools’
Post installation configuration:
Set SELinux to ‘permissive’ (/etc/sysconfig/selinux)
SELINUX=permissive
Enable / disable certain services:
chkconfig [servicename] on|off
Disable: NetworkManager, firstboot, pcscd, cups (unless you connect this server with a printer), sendmail (unless you want to send e-mail using it)
Enable: httpd, mysqld, network
Note: We use ‘network’ instead of ‘NetworkManager’ to manage internet connection
Edit network interface: (/etc/sysconfig/network-scripts/ifcfg-eth0)
ONBOOT=yes
Restart the server
init 6
After restart, update the system:
yum install yum-fastestmirror yum-presto -y yum update -y

X-less Fedora server on VBox
Extra
Add new user (‘webmaster’):
adduser webmaster passwd webmaster
Install vim (CLI text editor):
yum install vim-enhanced
Create folder .fonts on home directory
mkdir ~/.fonts
Move your *.ttf and *.otf to that folder
mv *.ttf ~/.fonts
‘Reload’ Gnome desktop
fc-cache -f -v
Gnome >= 2.22 has its own window compositing. To enable:
gconftool-2 -s --type bool /apps/metacity/general/compositing_manager true
To disable, set ‘true’ to ‘false’

Without window compositing

With compositing. See the drop shadow on app window and opacity on terminal window
yum install patch
To create patch:
diff -crB OriginalFolder ModifiedFolder > folder.patch
-c: context
-r: recursive (multiple level dir)
-B: ignore blank lines
To apply patch:
(dry run first, at target folder – to check for any error)
patch --dry-run -p1 -i folder.patch
If dry run success, do real patching:
patch -p1 -i folder.patch

Monkey patch
Compass is a stylesheet authoring framework that makes your stylesheets and markup easier to build and maintain. - http://compass-style.org/
To install in Fedora:
yum install rubygems gem install compass
By default, Compass is using Blueprint CSS framework – http://www.blueprintcss.org/
To kickstart a project:
compass -f blueprint project-name
To start designing website using Compass:
cd project-name compass -w
It will watch for file changes and recompile *.sass source file into *.css
Reference on how to use Compass – http://wiki.github.com/chriseppstein/compass/
Sass reference – http://sass-lang.com/
Some of design using Compass + Blueprint CSS framework:

Web design #1

Web design #2

Web design #3
Recent Comments