Tuesday, April 29th, 2008

Ubuntu Open Week

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

Tagged with: ubuntu | Comments [2]


Tuesday, April 29th, 2008

U ROCK! Thank you for Hardy 8.04

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 :)

U ROCK! Thank you for Hardy 8.04

Tagged with: ubuntu | Comments [4]


Thursday, April 24th, 2008

Moving Hosts

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 :)

Tagged with: hosting | Comments [0]


Thursday, April 24th, 2008

Ubuntu 8.04 "Hardy Heron" Released Today

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

Tagged with: ubuntu | Comments [8]


Sunday, April 20th, 2008

rpl - A Find & Replace Terminal Tool

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

Create MySQL User Accounts from the Command Line

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

Whird Update: Working Prototype or Vaporware?

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:

  1. 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.

  2. 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!

  3. 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!

  4. 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.

Tagged with: projects, whird | Comments [1]


Wednesday, April 16th, 2008

A New Agenda for Ubuntu CC Meetings

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.

Tagged with: ubuntu | Comments [1]


Sunday, April 13th, 2008

Xpad Sticky Notes

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.

Xpad Stick Notes running on CrunchBang Linux.

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

CrunchBang Linux 8.04.01 Release Notes

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

CrunchBang Linux showing GDM login screen. CrunchBang Linux showing clean desktop. CrunchBang Linux showing Agave and Gcolor. CrunchBang Linux showing Cheese webcam application and Pidgin IM client.

CrunchBang Linux showing Deluge BitTorrent client. CrunchBang Linux showing Twitux Twitter client. CrunchBang Linux showing Firefox 3 web browser. CrunchBang Linux showing Firefox 3 with Adobe Flash player.

CrunchBang Linux showing gedit text editor, xfce4-terminal and VLC with transparency. CrunchBang Linux showing GIMP image editor. CrunchBang Linux showing Inkscape vector graphics editor. CrunchBang Linux showing Mirage image viewer and ROX-Filer.

CrunchBang Linux showing Nitrogen background changer and Gtk+ 2.0 Change Theme. CrunchBang Linux showing obmenu and obconf Openbox configuration tools. CrunchBang Linux showing Rhythmbox music player. CrunchBang Linux showing OpenOffice.org Writer.

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

Openbox Pipe Menu for xcompmgr

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

CrunchBang Linux APT Repository Moved

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

Openbox Logout, Reboot & Shutdown Script

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.

Screenshot of Openbox logout, reboot, shutdown script.

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