You are here: CrunchBang → Archives → April '08
Tuesday, April 29th, 2008
Seen yesterday in #ubuntu-classroom on irc.freenode.net:
[16:05] <jono> the aim of Ubuntu Open Week is to produce a week of interesting and informative IRC sessions explaining how to get involved in the Ubuntu community
The line-up of sessions looks great. I am hoping to attend the following:
- Wed 30th Apr @ 16.00 UTC - Community Q+A - Jono Bacon
- Wed 30th Apr @ 19.00 UTC - Ubuntu Artwork - Ken Wimer
- Wed 30th Apr @ 21.00 UTC - Producing Podcasts in Ubuntu - Alan Pope
- Thu 1st May @ 16.00 UTC - Ubuntu on the Eee PC - Christer Edwards
- Thu 1st May @ 19.00 UTC - The Future of the Ubuntu Desktop - Ted Gould
- Fri 2nd May @ 16.00 UTC - Ask Mark - Mark Shuttleworth
- Fri 2nd May @ 17.00 UTC - Ask Mark - Mark Shuttleworth
- Sat 3rd May @ 17.00 UTC - Reporting Bugs - Brian Murray
- Sat 3rd May @ 19.00 UTC - LoCo Teams - Nick Ali
- Sat 3rd May @ 21.00 UTC - Improving OpenWeek/Feedback - Jorge Castro
Tuesday, April 29th, 2008
I came across this rather cool image whilst reading a post on Planet Ubuntu by Nicolas Valcarcel. I thought I would take a closer look to see how many names I could spot. I nearly fell off my chair when I spotted my own name. Not sure how that got on there! Nicolas mentioned something about making some t-shirts, I will have to buy one now :)

Thursday, April 24th, 2008
I am in the process of moving this site to a different hosting provider. I would love to stay with my current host, but this site is fast outgrowing the services I have available; I need to move the site now, before I start incurring additional fees from my provider :| This is a real shame, because the site's current host has proven to be super reliable.
I'll be moving the site to a cheaper service, one which offers a greater amount of monthly bandwidth. I know the service/uptime will not be as good as the current host, but for the difference in cost, I will not be complaining.
Anyhow, I just thought I would mention it as things may get a little screwy around here over the next few days. BTW, if you are reading this, you are connected to the new host :)
Thursday, April 24th, 2008
I am sure that everyone and anyone, who is interested, already knows that today sees the release of Ubuntu 8.04 LTS "Hardy Heron". Still, you never know, someone may read this and not be aware. Also, I wanted to mark the release date in my blog.
I have been running with the Hardy Beta releases for a couple of months, so the excitement at seeing all the new features has been slightly diluted; I may have to reinstall Gutsy for a day, and then perform an upgrade to get that "WOW!" factor. Either way, I just wanted to say congratulations to everyone involved in putting the Hardy release together, it rocks!
Also, there are many release parties happening tonight. I will not be attending any as I am working, boo! To those that will be partying, have a fantastic time! And sink a couple for me :)
Ubuntu 8.04 Release Notes: http://www.ubuntu.com/getubuntu/releasenotes/804
Download Ubuntu: http://www.ubuntu.com/getubuntu/download
Upgrade Information: http://www.ubuntu.com/getubuntu/upgrading
Sunday, April 20th, 2008
Tonight I have mainly been working on Whird. I have been rewriting large chunks of code in an effort to optimise a bunch of functions. As a result of this, I had to change a series of strings in a number of files. As per normal when it comes to fiddly grep, sed and awk commands, I fired up Google and searched for some pointers. Whilst refreshing my memory, I came across a comment by an anonymous reader who suggested using the rpl command.
I had not previously come across rpl before, so I investigated. Turns out that rpl is a really handy text replacement tool — it makes recursive text replacement commands really simple; as simple as:
rpl [options] old_string new_string target_file(s)
Available options are:
--version show program's version number and exit
-h, --help show this help message and exit
-L, --license show the software license
-x SUFFIX specify file suffix to match
-i, --ignore-case do a case insensitive match
-w, --whole-words whole words (old_string matches on word boundaries only)
-b, --backup make a backup before overwriting files
-q, --quiet quiet mode
-v, --verbose verbose mode
-s, --dry-run simulation mode
-R, --recursive recurse into subdirectories
-e, --escape expand escapes in old_string and new_string
-p, --prompt prompt before modifying each file
-f, --force ignore errors when trying to preserve permissions
-d, --keep-times keep the modification times on modified files
-t, --use-tmpdir use $TMPDIR for storing temporary files
-a, --all do not ignore files and directories starting with .
rpl is available to install from the Ubuntu repositories, install with the following command:
sudo apt-get install rpl
For more information about rpl, see: http://www.laffeycomputer.com/rpl.html
Thursday, April 17th, 2008
I have my LAMP install process down to fine art, which is a good thing considering the amount of Linux installs I have been performing lately. Anyhow, just recently I have been experiencing some issues with creating MySQL user accounts. Normally, for ease of use, I would simply login to phpMyAdmin and create a new user account, but, for some unknown reason, this method has not been working; maybe there is a compatibility issue between the latest versions of MySQL Server and phpMyAdmin available from the Ubuntu repositories?
Anyway, to get around this little problem, I have been creating new MySQL user accounts via the command line. It is a fairly straightforward procedure, but like a lot of administration tasks, it is not something I do on a daily basis. With this in mind, I thought it would be a good idea to record the process for future reference.
Follow the steps below to create a new user MySQL account. Note, these instructions assume that you have already set-up Apache, MySQL and PHP.
1. Open a terminal and login to MySQL as root:
mysql --user="root" --password="your_root_password"
2. Create a new user and password with the following command:
CREATE USER 'new_username'@'localhost' IDENTIFIED BY 'password_for_new_username';
3. Assign privileges to the new user, enter the command:
GRANT ALL ON *.* TO 'new_username'@'localhost';
4. Exit MySQL interface, enter:
exit
Notes: The above instructions will create a new user account on "localhost" and grant the user all privileges. While this is safe for my development environment, you would obviously want to grant only the necessary permissions in a production environment.
For more developer information, including the MySQL Reference Manual, visit: http://dev.mysql.com/
Thursday, April 17th, 2008
Looking at my project page for Whird, I can see I have somewhat neglected the project recently. Actually, this is not entirely true, I have been testing Whird extensively for about 7 months. As things stand at the moment, Whird could be considered as either, a working prototype, or, classic vaporware. I prefer to think of it as a working prototype; however, I am not one of the many people who, over the last few months, have contacted me, asking questions about the project.
Why the neglect?
There are several reasons for my recent lack of commitment to Whird:
I have spent a large amount of time [probably too much] working on other projects; since the beginning of the year, CrunchBang Linux has consumed most of my free time.
Now that I have a working copy of Whird, I seem to have become far too comfortable simply using it, instead of developing it. Since starting this blog, in September last year, I have written 165 posts [not including this one.] Maybe I should have spent more time developing, instead of writing?! Hang on a minute, I am doing it again now. Doh!
Related to the last point; now that I have test driven Whird, I pretty much know what is wrong, what needs fixing and what works. Knowing this, I would ideally like to perform a complete rewrite. A daunting thought!
I have no self-imposed deadlines. This is both a blessing and a curse. It is a blessing, because it means any work I put into Whird remains a fun activity, something I can perform at my leisure. It is a curse, because I may not actually touch the project for months on end.
Will Whird ever be released?
Answer; maybe, probably, I hope so. Having said that, I would not hold your breath. It has occurred to me that Whird is in danger of becoming [if it hasn't done so already] "that" project, the project that provides endless hours of fun, without actually resulting in anything tangible.
Anyhow, that pretty much sums up the current status of Whird. Time to crack on and have a bit more fun :) In the meantime, if you are reading this and you are looking to start a new blog, why not try Steve Kemp's Chronicle. I have not actually tried it myself, but from what I have read, it looks like an interesting piece of software, something I could see myself using.
Wednesday, April 16th, 2008
Yesterday, for the first time, I attended an Ubuntu Community Council meeting. The meeting was held in the #ubuntu-meeting channel on irc.freenode.net. The meeting itself was a bit of a non-event for myself; I was on the agenda to have my membership application heard, however, Mark Shuttleworth stated that membership applications would not be on the agenda. Membership applications will now be processed by one of three regional teams. More information about the new "streamline" process can be found at: https://wiki.ubuntu.com/StreamlineMembershipApproval
Personally, while feeling a little disappointed at not having had my moment, I also felt somewhat relieved. I think I had adequately prepared for the meeting, however, it will be good have a reprieve to work on strengthening my application. Becoming an Ubuntu member is a personal goal of mine, but it is not the be all and end all — making new friends, acquaintances and just being involved in this fantastic community is much more important :)
Regarding the new "Streamline Membership Approval", it can only be a good thing; as part of my preparation for yesterday's meeting I read numerous logs from previous Community Council meetings. Something that I noticed, while reading these logs, was the amount of time taken up by processing membership applications. I am sure that the Community Council members have more important things to discuss in the limited time they have available. Therefore, I, for one, am glad that the membership applications have been delegated; hopefully this will provide the Community Council more time to discuss the wider issues affecting the Ubuntu Community.
Sunday, April 13th, 2008
Xpad is a sticky notes application written in GTK+ 2.0. It is a simple little application which can be used to help you remember important stuff. I really like Xpad, mainly because it does exactly what I would expect it to do, without suffering from feature bloat; it is an ideal utility for my Openbox based systems.

The current version of Xpad available from the Ubuntu Hardy repositories [2.13] suffers from a rather drastic 100% CPU bug; therefore, I have updated the package to the latest 2.14 release and uploaded it to the CrunchBang Linux repositories. I have also filed a small bug report on Launchpad and I am looking for a mentor to help me update the package; I understand it is a busy/hectic time for Ubuntu developers at the moment, so I will not hold my breath while I wait for a reply :)
Tuesday, April 8th, 2008
This is the third release of CrunchBang Linux. This release is based on the current development version of Ubuntu, "Hardy Heron". As with the previous releases, I have developed CrunchBang Linux for personal use; however, I have released it as a download on the off chance that others may find it useful.
I have been running this release on my own systems for a number of weeks and it seems to be quite stable. Having said that, this release is based on a "development" release of Ubuntu and therefore is not recommended for anyone needing a stable system or anyone who is not comfortable running into occasional, even frequent breakage.
What's new?
I am really quite happy with how CrunchBang Linux is developing. This release sees numerous improvements and when installed makes for a really usable, fast and attractive system. I would really like to thank the users on the forums for all their suggestions and feedback; I have implemented many improvements based solely on their input. See below for a list of changes.
Major updates:
- CrunchBang Linux is now based on Ubuntu 8.04 "Hardy Heron". This brings many new improvements and package updates; most notably an updated 2.6.24.15 Linux Kernel, and Xorg 7.3.
- Openbox 3.4.7-pre2, this release includes many improvements including the GDM control mentioned here.
- CrunchBang Linux repositories are now enabled by default. The repositories include CrunchBang Linux specific packages and fixes, plus Openbox related updates etc.
- A new default theme based on Clearlooks, "Darkness Returns". See the screenshots.
Other changes:
Download
The CrunchBang Linux ISO image is approximately 614MB. It can be downloaded from the following locations:
MD5: 90c83bac8ec4411fea422b439bfbcc65
Screenshots



Disclaimer
CrunchBang Linux is not recommended for anyone needing a stable system or anyone who is not comfortable running into occasional, even frequent breakage. CrunchBang Linux could possibly make your computer go CRUNCH! BANG! Therefore CrunchBang Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.
Sunday, April 6th, 2008
I have been playing around with and writing a Bash script pipe menu for xcompmgr under Openbox. The script has dual functionality; firstly, it acts as on/off toggle for xcompmgr; secondly, it produces a conditional menu depending on whether or not xcompmgr is running — if xcompmgr is not running, an "Enable Compositing" menu item will appear; if xcompmgr is running, a "Disable Compositing" menu item will be offered along with a list of "Set Target Window Transparency to XX%" items.
It is a simple Bash script, but quite effective. Please feel free to modify/improve as you see fit.
#!/bin/bash
# Openbox Pipe Menu for xcompmgr
################################
# Set xcompmgr command options
EXEC='xcompmgr -c -t-5 -l-5 -r4.2 -o.55' #basic compositing
#EXEC='xcompmgr -cCfF -t-5 -l-5 -r4.2 -o.55 -D6' #more effects
# Toggle compositing. Call with "myxcompmgr --startstop"
if [ "$1" = "--startstop" ]; then
if [ ! "$(pidof xcompmgr)" ]; then
$EXEC
else
killall xcompmgr
fi
exit 0
fi
# Output Openbox menu
if [ ! "$(pidof xcompmgr)" ]; then
cat << _EOF_
<openbox_pipe_menu>
<item label="Enable Compositing">
<action name="Execute">
<execute>myxcompmgr --startstop</execute>
</action>
</item>
</openbox_pipe_menu>
_EOF_
else
cat << _EOF_
<openbox_pipe_menu>
<item label="Remove Transparency from Target Window">
<action name="Execute">
<execute>transset 1</execute>
</action>
</item>
<item label="Set Target Window Transparency to 10%">
<action name="Execute">
<execute>transset .90</execute>
</action>
</item>
<item label="Set Target Window Transparency to 20%">
<action name="Execute">
<execute>transset .80</execute>
</action>
</item>
<item label="Set Target Window Transparency to 30%">
<action name="Execute">
<execute>transset .70</execute>
</action>
</item>
<item label="Set Target Window Transparency to 40%">
<action name="Execute">
<execute>transset .60</execute>
</action>
</item>
<item label="Set Target Window Transparency to 50%">
<action name="Execute">
<execute>transset .50</execute>
</action>
</item>
<item label="Set Target Window Transparency to 60%">
<action name="Execute">
<execute>transset .40</execute>
</action>
</item>
<item label="Set Target Window Transparency to 70%">
<action name="Execute">
<execute>transset .30</execute>
</action>
</item>
<item label="Set Target Window Transparency to 80%">
<action name="Execute">
<execute>transset .20</execute>
</action>
</item>
<item label="Set Target Window Transparency to 90%">
<action name="Execute">
<execute>transset .10</execute>
</action>
</item>
<separator/>
<item label="Disable Compositing">
<action name="Execute">
<execute>myxcompmgr --startstop</execute>
</action>
</item>
</openbox_pipe_menu>
_EOF_
fi
exit 0
How to use the script
Follow the instructions below to install the script and set-up the Openbox pipe menu:
1. Open a terminal and download the script with the following command:
wget http://crunchbang.org/misc/myxcompmgr
2. Move the script to your "bin" directory and make executable:
mv myxcompmgr ~/bin/myxcompmgr && chmod +x ~/bin/myxcompmgr
3. Open your Openbox menu.xml file for editing:
gedit ~/.config/openbox/menu.xml
4. Insert the following code where you would like the menu to appear, save and exit:
<menu execute="myxcompmgr" id="CompositingPipeMenu" label="Compositing"/>
5. Issue the following command to update/reconfigure Openbox:
openbox --reconfigure
Optional: You could also place the following entry in ~/.config/openbox/autostart.sh to start xcompmgr on boot:
# Enable Eyecandy, see ~/bin/myxcompmgr for more info
myxcompmgr --startstop &
Sunday, April 6th, 2008
Just a quick note, I have been performing some virtual housekeeping tonight and as a result I have had to move the CrunchBang Linux 7.10.xx APT repository. I have placed some redirects on the server, but APT will probably fail when an update/upgrade command is issued.
I have updated my original post and wiki page to reflect tonight's changes. If you are currently using the repository, please update your APT sources. Apologies for any inconvenience/disruption this might cause. FWIW, this will definitely be the final location for the 7.10.xx repository; also, the move was necessary to accommodate a new 8.04.xx repository. More details on that soon.
Tuesday, April 1st, 2008
I have been using the latest Openbox release [3.4.7-pre2] for the last few weeks and so far I have been impressed. One of the new features from the latest release is a GDM control script. The script basically allows for a user to send reboot and shutdown signals to GDM from within the Openbox environment. This provides a means to reboot/shutdown an Openbox system in a clean and efficient manner.

I have written the following PyGTK script to take advantage of the new GDM control. Python is not currently a language that I am too familiar with, so please feel free to rip the script to bits improve as you see fit.
#!/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk
import os
class DoTheLogOut:
# Cancel/exit
def delete_event(self, widget, event, data=None):
gtk.main_quit()
return False
# Logout
def logout(self, widget):
os.system("openbox --exit")
# Reboot
def reboot(self, widget):
os.system("gdm-control --reboot && openbox --exit")
# Shutdown
def shutdown(self, widget):
os.system("gdm-control --shutdown && openbox --exit")
def __init__(self):
# Create a new window
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_title("Exit? Choose an option:")
self.window.set_resizable(False)
self.window.set_position(1)
self.window.connect("delete_event", self.delete_event)
self.window.set_border_width(20)
# Create a box to pack widgets into
self.box1 = gtk.HBox(False, 0)
self.window.add(self.box1)
# Create cancel button
self.button1 = gtk.Button("Cancel")
self.button1.set_border_width(10)
self.button1.connect("clicked", self.delete_event, "Changed me mind :)")
self.box1.pack_start(self.button1, True, True, 0)
self.button1.show()
# Create logout button
self.button2 = gtk.Button("Log out")
self.button2.set_border_width(10)
self.button2.connect("clicked", self.logout)
self.box1.pack_start(self.button2, True, True, 0)
self.button2.show()
# Create reboot button
self.button3 = gtk.Button("Reboot")
self.button3.set_border_width(10)
self.button3.connect("clicked", self.reboot)
self.box1.pack_start(self.button3, True, True, 0)
self.button3.show()
# Create shutdown button
self.button4 = gtk.Button("Shutdown")
self.button4.set_border_width(10)
self.button4.connect("clicked", self.shutdown)
self.box1.pack_start(self.button4, True, True, 0)
self.button4.show()
self.box1.show()
self.window.show()
def main():
gtk.main()
if __name__ == "__main__":
gogogo = DoTheLogOut()
main()
Browse Posts by Tag
13th
advocacy
antispam
artwork
bash
bcs
bittorrent
bloggers
blogs
boobs
bookmarklets
cli
code
colour
commands
conduit
crontab
crunchbanglinux
debian
design
email
fluxbuntu
fonts
fun
gedit
gimp
gnome
google
gos
hack
hacks
hosting
images
javascript
language
launchpad
life
lincslug
linux
lugradio
madness
misc
monkeys
motu
mysql
n95
networking
nokia
openbox
openoffice
opensuse
packaging
penguins
php
phpmyadmin
podcast
ppa
programming
projects
puppy
python
rants
revu
scripts
security
shell
software
ssh
terminal
themes
tools
twitter
typography
ubuntu
ubuntucse
unitedhosting
video
virtualisation
webdesign
whird
wiki
windows
woot