Archive for the 'News' Category

Page 2 of 9

Red Hat Enterprise Linux 6 Beta + Grub 2

Yesterday I downloaded and installed RHEL 6 Beta but I didn’t install the boot loader. I already have Grub 2 installed and set up on my laptop with my other distros and Windows. RHEL 6 Beta uses Grub (Legacy) and this handles graphics different to Grub 2. I’ve been using LFS and CLFS for a while now for development so it’s been a while since I’ve used a full distro, with GUI and wireless an other very nice features (like the spell checker I’m using in FireFox).

Below is the Grub 2 configuration file I use to boot RHEL 6 Beta. I’m assuming you already have Grub 2 installed.

# Begin /boot/grub/grub.cfg

set gfxmode="1280x800x32" # Your resolution
set gfxpayload=keep
insmod gfxterm # Load modules
insmod vbe 

set default=0
set timeout=5
set root=(hd0,3) # Your boot partition

menuentry "Red Hat Enterprise Linux 6 Beta" {
  linux /vmlinuz-2.6.32-19.el6.x86_64 root=/dev/sda9 # Your root device
  initrd /initramfs-2.6.32-19.el6.x86_64.img
}

# End /boot/grub/grub.cfg

It took me about a day to work this out so I hope this helps you.

Jon~

C++ Aggregation Assocation

Hello all. I created the program at the bottom as a test as I was having problems with Aggregation Assocation in my assignment. The program below has the person class that we created in the last post but now it also has a new link class with two functions. The first function sets the pointer to the person, the second increases the person’s age by one. You can see that I have commented out the orginal command that sets the person’s age.

A pointer is a link to the RAM address of something else, in this case a instance of the person class. You access a pointer’s public functions / variables by the -> symbol. So pointer->setValue(newValue) would run the setValue function of what the pointer is connected too.

A Aggregation Assocation is a connection between two classes that do not own one another. For example a pet belongs to it’s owner but a student does not belong to a school as student and school are both independant entities that are connected.

This is something I did quickly and thought I’d stick online so if you have any questions leave a comment and I’ll get back to you.

#include <iostream>
#include <string>

using namespace std;

class person
{
  private:
    int age;
    string name;

  public:
    // Constructors
    person();
    person(string newName, int newAge);

    // Accessors
    string getName() { return name; };
    int getAge() { return age; };
    // datatype getVariable() { return variable; };

    // Mutators
    void setName(string newName);
    void setAge(int newAge);
    // void setVariable(datatype newVariable);

};

person::person()
{
  name = "Stranger";
  age = 100;
}

person::person(string newName, int newAge)
{
  name = newName;
  age = newAge;
}

void person::setName(string newName)
{
  name = newName;
}

void person::setAge(int newAge)
{
  age = newAge;
}

///////////////////////////////////////////////////
class pointerClass
{
  private:
    person *link; // pointer to a person

  public:
    void setLink(person * newLink); // set the pointer to a person you've created
    void incAge(); // increase their age by one

};

// set the pointer to a person you've created
void pointerClass::setLink(person * newLink)
{
  link = newLink;
}

// Increse their age by one.
void pointerClass::incAge()
{
  int temp = link->getAge(); //get Age
  // cout << "temp: " << temp << endl; // output orginal age
  link->setAge(++temp); // inc and set new age.
  // cout << "temp: " << temp << endl; // output new age
}

///////////////////////////////////////////////////
int main()
{
  pointerClass myLink;
  person steve("Steve", 20);
  myLink.setLink(&steve);
  cout << steve.getAge() << endl;
  // steve.setAge(21);
  myLink.incAge();
  cout << steve.getAge() << endl;
}

A simple CPP program

Hello everyone. This semester I’ve been the learning CPP (C++ / CXX) programming language and I thought I’d write a simple program in order to help out some of my friends. This program has one class; person. This class contains two private variables called name and age, these have the associated accessors and mutators.

Lets start the program, first we need to include the iostream library, we will also include the string library. They handle the input and output and give us the ability to use strings respectively. I personally thing using strings is easier and neater than using char arrays. We also have to declare our namespace.
Continue reading ‘A simple CPP program’

Apache user support in Tiger

Last time we showed you how to install Apache 2.2 on OS X Tiger. This time we will show you how to add user directory support to it.

Assuming you installed Apache to /usr/local/apache2 then you need to look at a file called httpd-userdir.conf in /usr/local/apache2/conf/extra. This is the file that tells Apache where there user’s directory is and what directory inside it is the public_html one. Open this file up in a text editor of your choice. There are only two lines you need to edit.

UserDir public_html
<Directory "/home/*/public_html">

This is the default config for Apache but this is designed for linux systems. To make this work on OS X you need to change these lines to the below.

UserDir Sites
<Directory "/Users/*/Sites">

You will notice that public_html has been changed to Sites. If you look in your home directory this folder will be here. We also changed /home to /Users because this is what OS X uses for the user’s directories.

The last thing you need to do is to enable the user directory support in the main httpd.conf file. It will be in /usr/local/apache2/conf. Look for the below line and simply remove the # (hash) symbol from the beginning.

#Include conf/extra/httpd-userdir.conf

Now just save the file and go into system preferences, select sharing then stop and start “Personal Web Sharing”. Now enjoy your user directory support for Apache 2.2 in OS X Tiger.

All comments and questions are welcome. I’m always looking to improve my writing.

User directory suppport on OS X

User directory suppport on OS X

Cats v3

I have been working on a new website for my uncle and aunty. They breed cats and dogs so they use the website do display information about their animals and what kitties and pups they have for sale. Their current website was made in 2005 and the last back end update was in 2006. Since then I have learnt so much more about websites and my code has become much more refined. The new site that is still in development features a small amount of CSS3 and an easy to update layout with all the pages being stored in a sub directory. I am also working on a method to have the English and French site rolled into one where PHP works out if it should serve the end user English or French content.

Mac binary stripping guide

Hey all. Mac users will know that a lot of new apples come with both i383 and ppc executable. If you’d like to save space you can strip one of them from the program. Here is how I did it to Safari 3.1:

First you open up Terminal.app under Utilities in the Applications directory.

Last login: Sun Mar 23 22:04:19 on ttyp1
Welcome to Darwin!
$ cd /Applications/Safari.app/Contents/MacOS/
$ ls
Safari
$ file Safari
Safari: Mach-O universal binary with 2 architectures
Safari (for architecture i386): Mach-O executable i386
Safari (for architecture ppc): Mach-O executable ppc
$ lipo -remove i386 Safari -output Safari
$ file Safari
Safari: Mach-O universal binary with 1 architecture
Safari (for architecture ppc): Mach-O executable ppc

For Intel users:
$ lipo -remove ppc Safari -output Safari

Explained:
The first two commands move you into the Safari.app binary and show you the contents of the folder. The file command shows you that the binary is a fat binary, IE it contains two arches.

Now lipo is the key to all of this. This is a command line tool that creates or operates on a universal files.

The binary you want to edit is located in Contents/MacOS inside the .app file. It is normally the only file in there.

Notes:
Backup the .app file before you begin just incase you make a mistake.
In firefox it’s called firefox-bin.
Tab-complete is your friend Continue reading ‘Mac binary stripping guide’

RAID and extra storage

Something I have been thinking of doing for a while was to upgrade the server’s hard drive storage. At the moment it has a 200GB hard drive that is about 80% full. As I have a linux shop and the server is sometimes used as a backup for other computers on the network I have decided to by a 500GB hard drive. To make the new upgrades to the server future proof so that when the time comes to upgrade to a new server I will be able to use some of the parts from the old, I have bought a SATA hard drive. Due to the server not having any SATA ports on the motherboard, or for that matter most other I/O ports, I have bought an Adaptec SATA RAID card to go in the server. This will allow me to add 2 SATA hard drives to the server and these should preform just as fast, if not faster than the current IDE hard drive.

This will mean that at some point, probably next week, the server will be down while I upgrade the kernel and install the new SATA controller and hard drive.