Apr 27

Sorry if you were expecting a substantial research report, but there really is no need for an in depth technical evaluation and comparison. No need to waste your time with specifications and benchmark results. No funky table with the pros and cons of each operating system. All you need do, is watch the following video.

Even if it’s satire, it’s more than enough reason to switch to Linux…

You need to a flashplayer enabled browser to view this YouTube video

Cringe

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • Slashdot
  • TwitThis
  • Yahoo! Buzz

written by Hodge \\ tags: , , ,

Apr 21

I love Photography, and any oportunity I get, I try and take photos. I have a great camera, and living in the jungle, fantastic surroundings and photo oportunites everywhere I look. The only thing I’ve been lacking is a digital darkroom for Linux. OK, so we Linux users have GIMP, CinePaint (a fork from GIMP 1.0.4 specifically for photo/movie frame editing), and ufraw - a RAW digital image processor, along with a bunch of other great tools for image processing, but I just wanted to try something more. I’ve tried installing the trial version of Adobe Photoshop Lightroom with wine, but with no success, and as such, have continued my search for a viable Linux based digital darkroom…

A couple of days ago, I set up a makeshift studio at home so I could do a photoshoot of my wife and new baby (well, I say studio - it was in fact a couple of dark blankets I found about the house, no lighting, reflectors, or any of the expensive professional gear!). Once finished, I really wanted to process some of the better shots to send to my family, and so was determined to find something I could install and use on Linux.

Tenacity prevailed, and I finally discovered Lightcraft’s Lightzone - a Java based digital darkroom, with versions available for Mac, Windows and Linux! The Linux version is currently in Beta, but in all honesty, having used it for the past few days, I couldn’t tell. Installation is as simple as you can get - download the archive (registration is required, but it’s worth it), extract the files, enter the new directory, and run the LightZone executable:

tar -zxvf LightZone-3.4.tar.gz
cd LightZone
./Lightzone

After a dialog appears informing how many days of the trial are left, the splash screen displays as the program loads. The GUI is incredibly intuitive, and within minutes, I managed to process a couple of pictures worth sending to my family. When the application first opens, it’s a simple case of using the pane on the left to navigate to a directory containing photos. LightZone automatically generates thumbnails, and a larger preview of the chosen thumbnail with an option to edit. A single click on “Edit” brings up a whole array of processing options to play with.

After a few clicks, and mainly fumbling around the system, I managed to turn this raw image:

into a Black and White 10×8 Portrait that my Mum will love:

I’m incredibly happy with the results of a few minutes clicking and fumbling around an unfamiliar system! If this is what can be achieved by doing so, I’m really looking forward to getting my teeth into the system, and learning it’s many features - HDR (High Dynamic Range) support, Zone Systems, and many more.

Unfortunately however, I only have 9 days left on the Trial, since the Linux version is still in Beta, and therefore not available for purchase. I have no idea how much the Linux version will be when it’s finally released, but the Windows and Mac versions retail at $129.95 for the Basic version, and $199.95 for the Pro version. Unfortunately, both out of my price range for the time being (that’s a hell of a lot of money where I live!), but I’m certainly going to enjoy the Beta version while I can, and dream of when I can afford to buy the Pro version! Still, I’ll see if I can make some time to write a couple of tutorials and post them.

LightZone is a fantastic product. The only thing extra I would like to see, is a 64 Bit version.

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • Slashdot
  • TwitThis
  • Yahoo! Buzz

written by Hodge \\ tags: , ,

Apr 14

I was cleaning up my computer today, and came across an old screen shot on my Windozzze XPoo partition. I took it back in the day, when Gmail was invite only and you had to enter a Captcha type string when you logged in…

 

Gmail Captcha tentshit

Gotta love random strings!

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • Slashdot
  • TwitThis
  • Yahoo! Buzz

written by Hodge \\ tags:

Apr 13

Xdebug LogoOK, so I have x64 Eclipse successfully installed and running with all the plugins I use for Web Application Development. But what about debugging? Sure, var_dump(), echo, print and so on are all valuable to me when debugging a script, but it’s always good to have more information.

Xdebug is a fantastic PHP extension, which is written by one of the PHP Core Developers, Derick Rethans. The current version is 2.0.3, and I set about installing it on my system, and integrating it into Eclipse PDT today.

Xdebug can be installed in a few different ways - by downloading the binaries from the site, compiling the source, or via PECL:

sudo pecl install xdebug

Some days, I just prefer to download compile the source, as it gives me more of an understanding of what is being installed and where, and this is one of those days:

cd ~/
mkdir xdebug
cd xdebug
wget http://www.xdebug.org/link.php?url=xdebug203
tar -zxvf xdebug-2.0.3.tgz
cd xdebug-2.0.3

The packages phpize and php-config are required to install Xdebug, and can be obtained by installing the relevant PHP development packages:

sudo apt-get install php4-dev

or

sudo apt-get install php5-dev

depending on the PHP version installed. After unzipping the Xdebug source, I ran

phpize

which output:

PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519

I then checked this against the table at http://www.xdebug.org/docs/install#phpize to see if my PHP version (5.2.3) was compatible with Xdebug - it matched up to the table’s 5.2.x PHP version row, so I went ahead and installed:

./configure --enable-xdebug --with-php-config=/usr/bin/php-config
make

which created a file xdebug.so in the modules subdirectory. This file needs to be copied (or moved) to the PHP Extension directory, which on my system is in /usr/lib/php5/20060613/. An easy way to find the PHP extension directory is to run:

locate mysql.so

ok, so I copied the xdebug.so to the extension directory:

sudo cp modules/xdebug.so /usr/lib/php5/20060613/

So far so good. Now PHP needs to be told about the extension, and to load it. This can be done by adding

zend_extension="/usr/lib/php5/20060613/xdebug.so"

to the php.ini file. However, on my Ubuntu system, the PHP extensions are activated by adding an .ini file to the /etc/php5/apache2/conf.d directory, for each extension installed. The .ini file is the extension_name.ini, so I created a file called xdebug.ini:

cd /etc/php5/apache2/conf.d
gksu gedit xdebug.ini

which for now, contains a single line:

zend_extension="/usr/lib/php5/20060613/xdebug.so"

After restarting the Apache server

sudo /etc/init.d/apache2 restart

I created a file called test.php in my Web Root directory, containing a call to the phpinfo() function:

<?php
phpinfo();
?>

and pointed my browser to http://localhost/test.php. Just before the “PHP Credits” section, is a small box containing information on Zend - and now, with a successful Xdebug installation, additional information on Xdebug:

Xdebug information output by phpinfo()

The same information can be found by opening a Terminal and running

php -m

to output the loaded modules, and towards the end of the output, you should see

[Zend Modules]
Xdebug

alternatively, run

php -i | grep Xdebug

and if Xdebug has been installed successfully, you should see

with Xdebug v2.0.3, Copyright (c) 2002-2007, by Derick Rethans

Now, Xdebug needs to be enabled before any scripts can be debugged! So, in the php.ini file (or in my case, the newly created /etc/php5/apache2/conf.d/xdebug.ini file) I added the lines:

xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"

and restarted Apache again:

sudo /etc/init.d/apache2 restart

running

php -i | grep xdebug

in the Terminal, or using the test.php file containing phpinfo() shows that the new settings are being used, and Xdebug is active and running.

Configuring Eclipse PDT:

Setting up Eclipse PDT to use the Xdebug extension is pretty simple. In Eclipse PDT, I opened Window -> Preferences, then clicked on PHP, expanded the tree, and selected Debug. I Chose Xdebug from the pull down menu for the PHP Debugger, the “Default PHP Server” (should already be set to localhost), and then created a new PHP Executable option by clicking on the PHP Executables link next to the PHP Executable pull down menu.

XDebug and Eclipse PDT

In the PHP Executables dialog, I Clicked Add, filled in the name (PHP with XDebug), and entered the path to the PHP executable - on my system this is /usr/bin/php but if you don’t know, then in a terminal, run

which php

to find out where the php command is run from. I also entered the location of php.ini - again, on my system, this is /etc/php5/apache2/php.ini - and selected XDebug as the PHP debugger:

Xdebug - set up PHP Executable in Eclipse PDT

Clicked OK, then went back to the PHP -> Debug preferences screen, and selected the PHP Executable just created in the PHP Executable pull down. Finally, in the Debug -> Workbench Options option in the left, I selected “Never” for the “allow multiple debug sessions” option, since Xdebug does not support them.

Finally, I needed to set the Default Web Browser in Eclipse, to that when I debug a script, the output is sent to Firefox. Again in Preferences, I navigated to General -> Web Browser, and clicked “New”. It’s pretty straight forward stuff - entering a name and location - Firefox, and /usr/bin/firefox. Again, if you don’t know the location of the firefox binary, in a terminal run:

which firefox

With this done, and the preferences saved, I can now debug my scripts using Xdebug!

Using Xdebug in PDT

References:

http://www.xdebug.org/docs/install
http://www.eclipse.org/pdt/documents/XDebugGuide.pdf
http://devzone.zend.com/article/2803-Introducing-xdebug

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • Slashdot
  • TwitThis
  • Yahoo! Buzz

written by Hodge \\ tags: , ,

Apr 12

Eclipse SDKNOTE, 04/08/08: This tutorial covers Eclipse Europa. If you would like to install the latest version of Eclipse 3.4 Ganymede, with PDT and SQL Explorer, take a look at my latest Tutorial: “64 Bit Eclipse 3.4 (Ganymede) IDE with PDT and SQL Explorer - Full PHP/MySQL Web Application IDE“.

I had tried once before to install the x64 (64 Bit) version of Eclipse IDE, about 8 months ago, but found it to be somewhat buggy and unstable. In the interim, I’ve been using the 32 Bit version of Eclipse PDT for my development stuff. Earlier this year (21/02/08) a new version of Eclipse 64 Bit was released, so I gave it a go today. So far, so good!

Unfortunately, there’s no 64 Bit PDT all-in-one, but I managed to install a 64 Bit equivalent by cobbling together the relevant packages available by using the Eclipse Update Manager system, after initially installing the latest version of Eclipse Classic 3.3.2 64 Bit.

I wanted to keep everything (or as much as possible) 64 Bit, so I also download and installed the 64 Bit JRE, which can be downloaded here (or use the direct link to the bin file). The method for installing the 64 Bit JRE is the same as the 32 Bit version - after the file downloaded to my desktop, I opened up a new Terminal Window (Applications -> Accessories -> Terminal), traversed to the directory I wanted to install it into, moved the file, made it executable, and ran it to install:

cd /usr/java
sudo mkdir 64
cd 64
sudo mv ~/Desktop/jdk-6u5-linux-x64.bin /usr/java/64/
sudo chmod a+x jdk-6u5-linux-x64.bin
sudo ./jdk-6u5-linux-x64.bin

If the “java” directory doesn’t exist, it needs to be created first:

sudo mkdir /usr/java

listing the directory

ls

should return

jre1.6.0_05

which is the directory containing the necessary Java binaries.

As with my previous 32 Bit installation, I wanted Eclipse to be installed in the /opt directory:

cd /opt
sudo mv ~/Desktop/eclipse-SDK-3.3.2-linux-gtk-x86_64.tar.gz /opt
sudo tar -zxvf eclipse-SDK-3.3.2-linux-gtk-x86_64.tar.gz

then rename the eclipse directory:

sudo mv eclipse eclipse64

I also needed to get the newly installed Eclipse to run with the newly installed JRE - by default, the eclipse executable in the directory will try and detect Java and use whatever it finds, so I created a shell script:

cd eclipse64
sudo gksu gedit eclipse.sh

containing the following:

#!/bin/bash
PATH=/usr/java/64/jre1.6.0_05/bin:$PATH
/opt/eclipse64/eclipse

Now instead of running the eclipse executable, I run eclipse.sh (make sure it’s executable)

sudo chmod 755 eclipse.sh

before running

/opt/eclipse64/eclipse.sh

PDT and WTP Plugins

The first time I ran the new 64 Bit version, everything went well - it was fast, and seemed stable, so I went ahead and started installing all the additional plugins I needed (and still need…). Goto Help -> Software Updates -> Find and Install, and select “Search for new features to install”.Click on “New Remote Site” for each of the following:

  • Name: PDT, URL: http://download.eclipse.org/tools/pdt/updates/
  • Name: WTP, URL: http://download.eclipse.org/webtools/updates/
  • Name: GEF, URL: http://www.eclipse.org/gef/updates/
  • Name: EMF, IRL: http://www.eclipse.org/modeling/emf/updates/

Eclipse Update Manager Add Remote Site

Actually, there are only a couple of components required from the GEF (Graphical Editing Framework) and EMF (Eclipse Modeling Framework) packages to satisfy dependencies - WTP (Web Tools Platform) requires a package from GEF, and GEF from EMF…

After adding these, click on Finish - the Update Manager will then query any mirrors for the latest versions of the plugins. Once it has finished, a dialog appears, where it is possible to select the plugins to download and install. First, I selected PDT - the Update Manager then informed me that PDT requires files from WTP, so I tried clicking the “Select Requires” button, hoping that it would sort out the dependencies on my behalf. Unfortunately, nothing happened… So, I selected WTP manually, then expanded GEF -> Eclipse SDK R3.3.1 and Selected Graphical Editing Framework 3.3.1v20070814, then expanded EMF -> EMF SDK 2.3.2 and selected Eclipse Modeling Framework (EMF) - org.eclipse.emf.ecore 2.3.2v200802051830… I could then click “Select Required” to get the last few residual required dependencies… Phew…

Eclipse Update Manager Select Updates

Actualy, it still bugged me for dependencies for Java Persistence API contained in WTP, but by that stage I really couldn’t be arsed going through the process of adding more stuff to the Update Manager and potentially having to search for further dependencies, so I just deselected the three Java Persistence API files contained in WTP.

OK, with the dependencies sorted, I clicked Next, accepted the agreements, finished, and went to make, and drink a brew (that’s Tea) while the Update Manager downloaded and installed the requested stuff.

MySQL: SQL Explorer Plugin

Eclipse SQL Explorer LogoOnce everything had downloaded and installed, I restarted Eclipse. Everything looked good! Great, in fact. But I also wanted to install a few more plugins, including the MySQL SQL Explorer Plugin - which additionally requires, and depends on Eclipse DTP (Data Tools Project). Eclipse DTP has to be downloaded and installed manually, since there is no automated Update Site. So, I downloaded dtp_1.5.2_022008.zip to my Desktop, and set about extracting and installing the files:

cd ~/Desktop
mkdir DTP
mv dtp_1.5.2_022008.zip DTP
cd DTP
unzip dtp_1.5.2_022008.zip
cd eclipse
sudo cp -R features plugins /opt/eclipse64

If Eclipse is open, restart it. With the DTP installed, I could set about installing the SQL Explorer Plugin. The instructions for installing and configuring the SQL Explorer Plugin can be found in my previous article - Eclipse PDT and MySQL - SQL Explorer Plugin, since I don’t want to regurgitate information, just follow the link if you need to install it, and come back when it’s done.

Note: Actually, now I had the DTP installed, I could download and install the additional Java Persistence API in WTP! Same method: Update Manager, select WTP etcetera, etcetera…

ATF: AJAX Framework Toolkit

Script.aculo.usOnce the SQL Explorer Plugin was installed, I had one final plugin - ATF (the AJAX Toolkit Framework). This can be downloaded as a Site Archive, and the zip file added to Eclipse’s Update Manager. Once downloaded, I opened the Update Manager in Eclipse (Help -> Software Updates -> Find and Install), and clicked on “New Archived Site”, to add a new locally archived site, calling it ATF, and pointing it to the freshly downloaded atf-incubation-SiteArchive-0.2.3M4-v200709141050.zip file. I discovered, however, that the site.xml file contained within the zipped site archive is somewhat out of date and the pointers within are directed to the wrong download locations, so I had to manually locate the additional dependent plugins - Mozilla XULRunner, and Mozilla JS. They can both be added as New Remote Sites to the Update Manager, by clicking on the “New Remote Site” button, and adding the following information:

  • Name: Mozilla JS, URL: http://ftp.mozilla.org/pub/mozilla.org/js/eclipse/
  • Name: XULRunner, URL: http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.1.3/contrib/eclipse/

The previously used EMF plugin is also required to satisfy a couple of dependencies, so I selected the ATF, Mozilla JS, XULRunner, and EMF plugins from the list, and clicked Finish. Once the “updates” were found, I selected XULRunner, Mozilla JS, ATF (I deselected the ATF -> Mozilla JS component though, since an updated version was to be downloaded and installed from the Mozilla Server), and also selected the required EMF components. Click through Next etc. to download and install. Once completed, I restarted Eclipse.

In the Window -> Preferences menu by the way, AJAX toolkits such as Script.aculo.us can be added to the ATF module.

Et Voila! I now have a working Eclipse 64 Bit version up and running! Finally!

Oh, if you want a desktop icon, just create a file on your Desktop called Eclipse.desktop,

cd ~/Desktop
gedit Eclipse.desktop

and add the following:

[Desktop Entry]
Categories=;
Encoding=UTF-8
Exec=/opt/eclipse32/eclipse.sh
Hidden=false
Icon=/opt/eclipse64/icon.xpm
Icon[en_US]=/opt/eclipse64/icon.xpm
Name=Eclipse
Name[en_US]=Eclipse
Terminal=false
Type=Application
Version=1.0

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • Slashdot
  • TwitThis
  • Yahoo! Buzz

written by Hodge \\ tags: , , , , , , ,

Apr 11

Firestarter LogoI recently installed Firestarter (a Firewall GUI for Linux - sometimes I just cant be arsed using CLI to configure iptables etc!), but I’ve noticed that when my system boots, it throws up the following error:

invoke-rc.d: initscript firestarter, action "restart" failed
run-parts: /etc/network/if-up.d/50firestarter exited with return code 2

This is actually a bug with version 1.0.3-5, and the solution is pretty simple - to upgrade to version 1.0.3-6. However, I have Ubuntu 64 Bit installed, and unfortunately, 1.0.3-6 is not yet available in the repositories. Not worries - just a simple case of downloading the source tar ball, compiling, and installing.

First, I removed the currently installed version:

sudo apt-get remove firestarter

and downloaded the latest tar ball. Once this had downloaded to my desktop, I went through my usual routine of creating a new directory, moving the file, extracting… and so on:

cd ~/Desktop
mkdir firestarter
mv firestarter-1.0.3.tar.gz firestarter
cd firestarter
tar -zxvf firestarter-1.0.3.tar.gz
cd firestarter-1.0.3

Installation is pretty straightforward - although it’s always good to read the README and INSTALL files!

more INSTALL

So, configure, make, and install:

./configure --sysconfdir=/etc
make
sudo make install

However, the configure step threw out a few errors for me:

Package libgnome-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `libgnome-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'libgnome-2.0' found Package libgnomeui-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `libgnomeui-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'libgnomeui-2.0' found Package gnome-vfs-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gnome-vfs-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gnome-vfs-2.0' found Package libglade-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `libglade-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'libglade-2.0' found
configure: error: Library requirements (libgnome-2.0 >= 2.0.0
libgnomeui-2.0 >= 2.0.0
gtk+-2.0 >= 2.4.0
gnome-vfs-2.0 >= 2.6.0
libglade-2.0 >= 2.3.6)

which basically means that I didn’t have some of the necessary development libraries installed required to compile the binaries. No real problem, and easy enough to solve by, well, installed in the required packages:

sudo apt-get install libgnome-dev libgnomeui-dev libgnome-vfs-dev libglade2-dev

This process also had to download an additional 50 packages to meet the dependencies of the above four packages (and there were probably some sub dependencies there too…)

Anyway, the configure process ran smoothly after installing the required dev libraries, so I could then run

make
sudo make install

to compile and install the new binaries.

It’s possible to have Firestarter run as a system service, by copying the fedora.init file from the install directory to /etc/init.d and renaming the file to firestarter, then enabling the script:

sudo cp fedora.init /etc/init.d/firestarter
sudo chkconfig firestarter reset

However, since I had previously installed Firestarter, all the relevant scripts and symbolic links were already in place. All I had to do was make a minor change to the /etc/init.d/firestarter script:

cd /etc/init.d
cp firestarter firestarter.old
gksu gedit firestarter

and changed the line

[ -x /usr/sbin/firestarter ] || exit 0

to

[ -x /usr/local/bin/firestarter ] || exit 0

so that the script would point to the new installed binary. That’s it.

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • Slashdot
  • TwitThis
  • Yahoo! Buzz

written by Hodge \\ tags: ,

Apr 07

I’m just playing around with a new theme for the site at the moment. I like this i3Theme, since I can split the side bar up into two sections - makes organising the side content a little easier - just need to design some kind of logo to go with the new theme :)

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • Slashdot
  • TwitThis
  • Yahoo! Buzz

written by Hodge \\ tags:

Apr 05

I’ve not had time to write any posts for a few days, as my Wife has recently given birth to a baby girl! Both are healthy and well, and will be back home soon!

Time to go back to the hospital :)

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • Slashdot
  • TwitThis
  • Yahoo! Buzz

written by Hodge \\ tags:

Apr 01

Google DesktopLike most users, I like to be able to locate files as quickly as possible, without having to plough through dozens of directories trying to remember where I placed that elusive Tibetan Flag image. There are several tools available to aid users searching their computers - the default install of Ubuntu has a built in search, the Tracker Search Tool.

Over a stretch of time, I’ve installed and used several such tools - Beagle, Google Desktop, and others. Both Beagle and Google Desktop offer a simple to use GUI, and are easy to install and set up. Beagle is available via the Ubuntu Repositories:

sudo apt-get install beagle

while Google Desktop is available to download from their website. Once the Google Desktop has downloaded, it can either be installed form the command line, or simply by double-clicking on the package.

Beagle SearchBoth packages will periodically scan your system, and index all of the files it finds (by default, the home directory, and additionally any others you add) which provides faster searching capabilities. They do use a small amount of system resources during this process, and they each use a fair amount of disk space to store the indexes (Google Desktop is currently using 500+Mb on my system, which in total has 9Gb of files and applications - much of that may actually be to do with Google having indexed my gmail inbox too!).

Find | grepThey’re great applications if you like visual feedback, and an interactive GUI, but even though I currently have Google Desktop installed (I’ve since removed beagle, to salvage some space, and will most likely remove Google Desktop eventually too), I rarely use it. The colourful icon sits next to my clock, waiting to be clicked, and the search box even pops up when I mistakenly double tap my CTRL key, but it’s rarely put to work. Invariably, I’ll use the combination of commands that has never failed in finding what I want - find, and grep. I can pass a directory to the find command, and pipe the results through grep to find any file I want, anywhere on my system:

~/$ sudo find / | grep TibetFlag.png
/home/tenzin/Desktop/TibetFlag.png
~/$

Well, there you go - it was on my Desktop all along…

Tibetan Flag

I usually use sudo, because I want the find command to be able to access all directories (I don’t need to use sudo if I’m just searching my home directory). I’m telling find to start the search in the root / directory - although this could be any directory: /home, /usr, /usr/share etc. then I’m piping | the results through to grep to match the actual (or partial) name of the file - I could have just passed “Tibet” as a parameter to grep, if I couldn’t remember the full filename.

Most of the time, this combination of commands will return many more results - in which case, it can be piped once again through more, which will return single pages of results that can be scrolled using the space bar, Page Down, or down keys:

sudo find / | grep Tibet | more

Alternatively, I could have just created a file to dump the results into, and peruse that file later with a text editor:

sudo find / | grep Tibet > tibetFlagSearch.txt

You can of course, also just use the find command, with the -name option:

sudo find / -name 'TibetFlag.png'
sudo find / -name 'TibetFlag.*'
sudo find / -name '*.png'

etc.

What can I say - I’m an old skool Command Linerererer…

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • Slashdot
  • TwitThis
  • Yahoo! Buzz

written by Hodge \\ tags: , , , ,

Mar 27

<rant>Let me tell you a little secret about SEO, or so called Search Engine Optimisation… It’s a joke. Sorry to all those companies that charge a small fortune and promise to “optimise your website for better search engine results” (actually, no I’m not sorry at all. Sorry), but they’re a rip off. They’re con-merchants. And they smell. The way to a better search engine ranking in my opinion is actually quite simple - and I’ll tell you for free… it’s content. All you need to do is write good, relevant content. It doesn’t matter what your site is about, if your page has good content on that particular subject, then you will probably get a good search engine placement. If somebody searches for “trimming dog’s claws” in Google, and you have written a comprehensive, relevant article about trimming your dog’s claws, which contains lots of information about trimming dog claws, then the chances are your page will come out near the top.

The only other thing which can help, is the structure of the site’s HTML. If the site code is well structured, then search engine spiders can access the content easier - the same as a person reading a book: if the book is well structured, then it’s easier to access the information within. The title of you page, for example, enclosed withing Heading 1 tags <h1></h1> near the top of the page’s structure (soon after the opening <body> tag), will be read early by the spider, and taken into consideration. If the sub headings, and content follow sooner rather than later, it all adds up…

There’s no magic formula, no panacea, no need for “keyword optimisation”, “friendly URLs” or any of the other buzz-words and phrases that are flying around the net. Just write good content, in well structured HTML. Simple. As far as Google is concerned, links to major websites may help with regards to ranking - if you’re writing about a popular subject that is…

And no, I don’t expect this article to come out on top of any searches for SEO, but then I haven’t really written a comprehensive article… merely a small rant…</rant>

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • Slashdot
  • TwitThis
  • Yahoo! Buzz

written by Hodge