Archive for the ‘Operating System’ Category

Using SSHFS with Bazaar (Bzr) or Git

on Thursday 4th June, 2009 Gabe speculated thusly…

I use SSHFS to mount remote drives locally. The remote computers don’t have Bzr installed, and it’s difficult to get them up to date enough to install the latest Bzr. Therefore, I execute Bzr on my local computer on the mounted filesystem. Using default mount options for SSHFS leads to errors in both Git and Bzr, this is because (I believe) SSHFS doesn’t directly support file renaming. It is possible to avoid these problems by using the -oworkaround=rename switch with the mount command.

As an example my mount command looks similar to this:
sshfs -oworkaround=rename user@computer1:/var/www /media/computer1

Posted in Bazaar, Git, Information, Linux, Operating System, Programming, Revision Control, Server

No Comments »

Apache Virtual Hosts on OS X Leopard

on Sunday 31st May, 2009 Gabe speculated thusly…

If you develop multiple sites and you need virtual hosting functionality, scroll down to the end of the /private/etc/apache2/httpd.conf file and uncomment the following:

# Include /private/etc/apache2/extra/httpd-vhosts.conf

Next, you’ll need to setup whatever virtual hosts you have in the virtual hosts file /private/etc/apache2/extra/httpd-vhosts.conf

You need to make an entry in the httpd-vhosts.conf file like so:

<virtualhost *:80>
   ServerName beta-site-1.com
   ServerAlias www.beta-site-1.com
   ServerAdmin webmaster@beta-site-1.com
   ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
   CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common

   DocumentRoot "/Library/WebServer/beta-site-1"
   ScriptAlias /cgi-bin/ "/Library/WebServer/beta-site-1/cgi-bin"
   
     Options FollowSymLinks MultiViews Includes
     AllowOverride All
     Order allow,deny
     Allow from all
   
</virtualhost>

The examples provided by Apple in the vhosts file are slightly incorrect and if you use the CustomLog lines as is you will get errors the following errors if you run: apachectl -t -D DUMP_VHOSTS:
Syntax error on line 40 of /private/etc/apache2/extra/httpd-vhosts.conf:
CustomLog takes two or three arguments, a file name, a custom log format string or format name, and an optional "env=" clause (see docs)

This is because
CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log common

Should actually read:
CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common

Posted in Development, Frameworks, HowTo, Information, Leopard, Linux, Operating System, OS X, PHP, Server, Ubuntu

2 Comments »

Get PHP MySQL working on Leopard OS X

on Sunday 31st May, 2009 Gabe speculated thusly…

Installing MySQL on OS X has become infinately easier since you can now download an Apple DMG from the MySQL website which takes care of the fine detail.

However, one thing that changed with Leopard is the socket for Mysql. It moved to /private/tmp, so you may need to configure your php.ini file to point it to the new location.

To do so, open the file /private/etc/php.ini, (if no such file exists, then make a copy of /private/etc/php.ini.default and rename it to php.ini) and edit that.

You have two lines to modify:

mysql.default_socket =

becomes:

mysql.default_socket = /private/tmp/mysql.sock

and mysqli.default_socket =

becomes:

mysqli.default_socket = /private/tmp/mysql.sock

Posted in Information, Leopard, MySQL, Operating System, OS X

No Comments »

Add items to environment path on OS X Leopard

on Sunday 31st May, 2009 Gabe speculated thusly…

Go to terminal and type:
vim ~/.profile

Assuming you want to add the path /usr/local/bin make .profile look like this:
PATH=/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin

Separating each item with a colon.

Posted in Information, Leopard, Operating System, OS X

No Comments »

Getting Java plugin to work in FireFox 3 on Ubuntu 9.04 Jaunty Jackalope

on Wednesday 27th May, 2009 Gabe speculated thusly…

Ensure that you have the package sun-java6-jre installed and then run the following command from a terminal:
sudo ln -s /usr/lib/jvm/java-6-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/firefox-3.0.10/plugins/

You will need to restart FireFox after this and Java should be working for FireFox now.

Posted in Information, Linux, Operating System, Ubuntu

No Comments »

Ubuntu 9.04 Jaunty Jackalope Gnome Session Problems

on Wednesday 27th May, 2009 Gabe speculated thusly…

A few weeks back I tried out the Gnome sessions. Gnome should automatically restore the programs you were last using when you log back in. However, it did not work well at all and I turned it off. This is when the problem began – everytime I logged back a whole bunch of the same applications automatically launched causing all sorts of mischief. No matter what I tried I could not get Gnome to turn sessions off again.

In the beginning I clicked on System -> Preferences -> Startup Applications and then selected the Options tab. Here, you may check a box labelled “Automatically remember running applications when logging out”. This will activate Gnome sessions. In my case, however, deselecting this did not turn Gnome sessions off.

After much hunting around, with no help from the Internet, I finally found the files that needed deleting to stop Gnome launching various apps at startup. You need to open your home folder in Nautilus and press CTRL+H – this lets you view hidden files and folders (hidden files/folders begin with a dot “.”). Navigate the following path .config/gnome-session/saved-session and delete all the files there. You can move them to the trash can for safety. Having done this, the next time you login you should just get a blank desktop.

I’ve taken the time to write this in the hope that anyone else suffering from the same bug can solve it more quickly than I. This should be reported as a bug on launchpad.net if it isn’t already there.

Posted in Information, Linux, Operating System, Ubuntu

1 Comment »

An alternative img() helper function for CodeIgniter

on Wednesday 20th May, 2009 Gabe speculated thusly…

It is my opinion that CodeIgniter’s default img() function that comes in the HTML Helper could have been easier to use. As it is if you want to give your image a name css class you have to define an array consisting of these attributes.

That takes up space and makes the code less readable for non-PHP programmers. Since I work closely with a web designer who is good with HTML but gets lost in PHP I want to leverage the pragmatic power of PHP to automate repetitive tasks (like typing out an entire HTML image tag), but at the same time the result needs to be obvious to a non-programmer but also shorter than the HTML equivalent. I feel the img() helper in CodeIgniter falls short of both these requirements.

CodeIgniter’s img() helper also takes a second parameter, a boolean, this decides whether the index.php file is included in the image path, good if you are using a media controller. For 99.9% of my sites I don’t need these. Therefore I wrote my own helper.

The file is called MY_html_helper.php and lives inside the folder system/application/helpers. As with other extensions to the CI core the prefix MY_ is determined in your config file, so change MY_ to whatever it should be. Add the following code to the file:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

function img($imgName, $attrs=FALSE)
{
	$CI =& get_instance();

	if (strpos($imgName, 'http') === 0) return;

	$imgPath = $CI->config->item('base_url');

	if ( ! $imgDir = $CI->config->item('image_dir')) $imgDir = 'assets/images/';

	$img = $imgPath.$imgDir.$imgName;

	$str = '<img src="'.$img.'" ';

	if ($attrs) $str .= $attrs." ";

	$str .= "/>";

	return $str;
}

All you have to make sure you do is load the html helper: $this->load->helper('html'); in your controller,
or put it in the array of helpers in system/application/config/autoload.php.

The helper assumes images live in the folder assets/images which lives alongside the system folder. If this is not where you put your images then you can specify an alternative directory in your config.php file. Simply add a line that looks like this to config.php: $config['image_dir'] = 'alternative/path/images/';. Don’t forget the trailing slash at the end. This alternative folder would live at the very top level of your application, alongside index.php.

Using the helper is easy and straightforward: <?=img('example.gif')?>

Will produce <img src="http://mysite.com/assets/images/example.gif" />.

Any additional attributes you want in the html tag can be written as per usual as the second parameter. For example if you want to give the image an alt attribute and class:
<?=img('example.gif', 'class="myclass" alt="Example Image"')?>

Will produce:

<img src="http://mysite.com/assets/images/example.gif" class="myclass" alt="Example Image" />

The only hard part about this is making sure you get the single and double quotes correct in the second parameter.

Cheers

Posted in CodeIgniter, Development, Frameworks, Information, Linux, Operating System, Programming, Server

1 Comment »

Installing Hpricot from Ruby Gems errors out

on Tuesday 31st March, 2009 Gabe speculated thusly…

I was recently trying to get a Ruby script working on Ubuntu. This script required Hpricot and using Ruby Gems to install Hpricot always resulted in an error:

 gem install hpricot --remote
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /var/lib/gems/1.8 directory.
gabriel@windsor-telecom-2874:~/Music$ sudo gem install hpricot --remote
Building native extensions.  This could take a while...
ERROR:  Error installing hpricot:
	ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb install hpricot --remote
extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
	from extconf.rb:1

Gem files will remain installed in /var/lib/gems/1.8/gems/hpricot-0.7 for inspection.
Results logged to /var/lib/gems/1.8/gems/hpricot-0.7/ext/hpricot_scan/gem_make.out

The answer was simple:
sudo aptitude install ruby-dev

Just install the Ruby Dev package, this will also allow you to install lots of other gems such as SQLite3, etc.

Posted in Development, Ruby, Ubuntu

1 Comment »

Recursively Delete

on Thursday 29th January, 2009 Gabe speculated thusly…

find ./ -type f -name '*.*bk' -exec rm {} \;

Posted in HowTo, Information, Linux, Operating System

No Comments »

Recursive text find and replace in linux

on Thursday 29th January, 2009 Gabe speculated thusly…

Always forget how to do this:
find ./ -type f -exec sed -i.bk ’s/string1/string2/g’ {} \;

Posted in Development, HowTo, Information, Linux, Operating System

No Comments »