<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

 <title>Wael Nasreddine</title>
 <link href="http://wael.nasreddine.com/atom.xml" rel="self"/>
 <link href="http://wael.nasreddine.com/"/>
 <updated>2010-06-10T00:44:22+02:00</updated>
 <id>http://wael.nasreddine.com//</id>
 <author>
   <name>Wael Nasreddine</name>
   <email>wael.nasreddine@sabayonlinux.org</email>
 </author>

 
 <entry>
   <title>AutosyncML</title>
   <link href="http://wael.nasreddine.com/projects/autosyncml.html"/>
   <updated>2010-04-05T00:00:00+02:00</updated>
   <id>http://wael.nasreddine.com/projects/autosyncml</id>
   <content type="html">&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Author&lt;/strong&gt;: &lt;a href='http://wael.nasreddine.com'&gt;Wael Nasreddine&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;Source Code&lt;/strong&gt;: &lt;a href='http://github.com/eMxyzptlk/autosyncml'&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id='synopsis'&gt;Synopsis&lt;/h2&gt;

&lt;p&gt;AutosyncML is a script to synchronize mainling lists against a database&lt;/p&gt;

&lt;h2 id='description'&gt;Description&lt;/h2&gt;

&lt;p&gt;We, The &lt;a href='http://www.aulf.org'&gt;AULF&lt;/a&gt; webmasters, wanted to minimize our efforts by creating a robot to update the mailing lists subscriptions, which I&amp;#8217;ll detail in the next section, so I wrote this script to do exactly what we wanted.&lt;/p&gt;

&lt;h2 id='problem'&gt;Problem&lt;/h2&gt;

&lt;p&gt;On the website of the &lt;a href='http://www.aulf.org'&gt;AULF&lt;/a&gt;, students can open an account and become members of the AULF, send and receive emails from/to the people in the same department as they are in, or studying the same major as they are etc.. We used to subscribe and un-subscribe manually each update / new addition which become an endless job after a while, so we needed to automatize this process, and autosyncml was the best solution.&lt;/p&gt;

&lt;h2 id='solution'&gt;Solution&lt;/h2&gt;

&lt;p&gt;AutosyncML acts as a proxy between mysql and mailman, it can communicate with both of them and here&amp;#8217;s how it works:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Get a list of all available mailing lists&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Get a list of all available subscribed members to the available mailing lists&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Get a list of all available members in the database and for each member:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check if the email has changed by comparing it against a second copy (made by a previous run)&lt;/li&gt;

&lt;li&gt;If the email has changed, the old email will be un-subscribed from all mailing lists, the new email will be subscribed.&lt;/li&gt;

&lt;li&gt;Get a list of all already subscribed mailing lists&lt;/li&gt;

&lt;li&gt;Get a list of all mailing lists that this email should be subscribed to&lt;/li&gt;

&lt;li&gt;un-subscribe him from lists he&amp;#8217;s subscribed to but shouldn&amp;#8217;t be subscribe to&lt;/li&gt;

&lt;li&gt;Finally, subscribe him to the lists he should be subscribed to but not already subscribed to&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Send the log to the defined email in the settings.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id='installation'&gt;Installation&lt;/h2&gt;

&lt;p&gt;To install, you first need a copy of the code, so check it out&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git clone git://github.com/eMxyzptlk/autosyncml.git&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Go inside the autosyncml folder and run make / make install&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;make prefix=/usr
sudo make prefix=/usr install&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Edit the settings file&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;vim /etc/autosyncml.ini&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Setup a cronjob, to run (every 30 minutes if no control file, every minute with a control file):&lt;/p&gt;

&lt;p&gt;Every 30 minutes:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;*/30 * * * * export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin; /usr/bin/autosyncml&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Every minute:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;*/1 * * * * export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin; /usr/bin/autosyncml&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To report bugs or ask for new features, please use the Tickets tab above.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>VLC is celebrating X-MAS already!</title>
   <link href="http://wael.nasreddine.com/blog/vlc-celebrating-xmas.html"/>
   <updated>2009-12-18T00:00:00+01:00</updated>
   <id>http://wael.nasreddine.com/blog/vlc-celebrating-xmas</id>
   <content type="html">&lt;p&gt;&lt;img src='/images/blog/2009/12/vlc-celebrating-xmas/vlc128x128-christmas.png' alt='VLC X-mas icon' /&gt; If you fire up VLC today, you will notice something very cute that the VLC community has came out with, a way to tell you, Merry X-MAS, in a very special and very clever way. When you open vlc just notice your taskbar, you will see that vlc has picked up another icon for you, the VLC icon wearing santa&amp;#8217;s hat! How cute is it? right??&lt;/p&gt;

&lt;p&gt;On behalf of every VLC lover out there, I would like to thank the VLC community, for inventing the best player in the world! You really made my year!! Merry Christmas and Happy new Year!!&lt;/p&gt;

&lt;p&gt;If the VLC developers made you smile with this X-mas gift, give them back by &lt;a href='http://www.videolan.org/contribute.html#money'&gt;donating&lt;/a&gt;, please remember that VLC is free, open source software and donations is their only source of revenue.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>lblmail</title>
   <link href="http://wael.nasreddine.com/projects/lblmail.html"/>
   <updated>2009-12-04T00:00:00+01:00</updated>
   <id>http://wael.nasreddine.com/projects/lblmail</id>
   <content type="html">&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Author&lt;/strong&gt;: &lt;a href='http://wael.nasreddine.com'&gt;Wael Nasreddine&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;Source Code&lt;/strong&gt;: &lt;a href='http://github.com/eMxyzptlk/lblmail'&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id='synopsis'&gt;Synopsis&lt;/h2&gt;

&lt;p&gt;lblmail is a small utility used to label an email based on pre-defined rules.&lt;/p&gt;

&lt;h2 id='description'&gt;Description&lt;/h2&gt;

&lt;p&gt;I love mutt and I love more Gmail, but Gmail IMAP sucks because labels will be seen as folders, so if your email belong to more than one label and you mark this email as read in one folder, it will remain unread (If you are using offlineimap of course).&lt;/p&gt;

&lt;p&gt;I tried to make offlineimap work together with procmail but I couldn&amp;#8217;t get it to work because procmail read an email from stdin and write the mail file by itself, so I had to write something similar to procmail, but a lot simpler of course, with the ability to apply the label directly to the given file path.&lt;/p&gt;

&lt;p&gt;Labels are taken from predefined rules written in the settings file.&lt;/p&gt;

&lt;h2 id='requirements'&gt;Requirements&lt;/h2&gt;

&lt;p&gt;lblmail is written by PHP, so the obvious and &lt;em&gt;only&lt;/em&gt; requirement is PHP.&lt;/p&gt;

&lt;p&gt;To install lblmail from source you optionally need git (you can get the tarball from github)&lt;/p&gt;

&lt;h2 id='installation'&gt;Installation&lt;/h2&gt;

&lt;p&gt;To install lblmail, clone the git repository&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git clone git://github.com/eMxyzptlk/lblmail.git&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Make the source files&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;make prefix=/usr&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Install it&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo make prefix=/usr install&lt;/code&gt;&lt;/pre&gt;</content>
 </entry>
 
 <entry>
   <title>iPhone OS 3.1.2 has been jailbroken</title>
   <link href="http://wael.nasreddine.com/blog/iphone-3.1.2-jailbroken.html"/>
   <updated>2009-10-15T00:00:00+02:00</updated>
   <id>http://wael.nasreddine.com/blog/iphone-3.1.2-jailbroken</id>
   <content type="html">&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Author&lt;/strong&gt;: &lt;a href='http://wael.nasreddine.com'&gt;Wael Nasreddine&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;George Hotz created a new tool, a successor, if you want, of the well known &lt;a href='http://www.redsn0w.com'&gt;redsn0w&lt;/a&gt; tool, but it works for the iPhone 3.1.2 OS, The tool is also incredibly fast, it took less than 10 seconds to put the iphone in restore mode ( which is non-jailbreaking tool related ) and it took less than 3 seconds to transfer the data which jailbreak the iPhone on the fly, and the most important feature in my opinion, is that you don&amp;#8217;t get Cydia nor Icy nor anything else installed, but you get a software called blackra1n which you can install any of Cydia, Icy and Rock your Phone at any time and you can also remove this application from within it..&lt;/p&gt;

&lt;p&gt;Really, it&amp;#8217;s the fastest jailbreaking tool I have ever tried. Good job dude !&lt;/p&gt;

&lt;p&gt;To download this tool simply go to the &lt;a href='http://www.blackra1n.com'&gt;blackra1n&lt;/a&gt; website, please don&amp;#8217;t forget to donate to George as well!!&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Welcome to my new blog</title>
   <link href="http://wael.nasreddine.com/blog/welcome-to-my-new-blog.html"/>
   <updated>2009-09-21T00:00:00+02:00</updated>
   <id>http://wael.nasreddine.com/blog/welcome-to-my-new-blog</id>
   <content type="html">&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Author&lt;/strong&gt;: &lt;a href='http://wael.nasreddine.com'&gt;Wael Nasreddine&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Welcome to my new blog, I just setup a new design and I&amp;#8217;m using a new system, I no longer want dynamic pages for my blog, it requires a lot of resources to serve quasi-static contents, so what I&amp;#8217;m using now is &lt;a href='http://github.com/mojombo/jekyll'&gt;Jekyll&lt;/a&gt; which is a small application written with ruby, and uses &lt;a href='http://github.com/remi/maruku'&gt;Maruku&lt;/a&gt; to parse text files written in &lt;a href='http://en.wikipedia.org/wiki/Markdown'&gt;Markdown&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What&amp;#8217;s really special in this design is the combination with &lt;a href='http://www.git-scm.com'&gt;Git&lt;/a&gt; which makes publishing the site a peace of cake, So in order to make a blog post now, all I have to do is to write a text file using my Ever-Favorite-Beloved-Godess editor &lt;a href='http://www.vim.org'&gt;ViM&lt;/a&gt;, commit it to git and push it to the master repository and voilà, the post is already up on my server..&lt;/p&gt;

&lt;p&gt;I will make a detailled tutorial in another post, but for now I will be working on importing all my old posts back from the dead, they are already taken from the database into text files but they need some tweaking as Wordpress usually have bad HTML written in the posts and hence Maruku has a bad time understanding the posts..&lt;/p&gt;

&lt;p&gt;Anyway stay tuned for the return of my contents, now I know VHCS guys will complain about changing my blog and all the link again, so I moved VHCS to github, read more in &lt;a href='/projects/vhcs-sh.html'&gt;vhcs.sh&lt;/a&gt; page.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>vhcs.sh</title>
   <link href="http://wael.nasreddine.com/projects/vhcs-sh.html"/>
   <updated>2009-09-19T00:00:00+02:00</updated>
   <id>http://wael.nasreddine.com/projects/vhcs-sh</id>
   <content type="html">&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Author&lt;/strong&gt;: &lt;a href='http://wael.nasreddine.com'&gt;Wael Nasreddine&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;Source Code&lt;/strong&gt;: &lt;a href='http://github.com/eMxyzptlk/vhcs.sh'&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id='synopsis'&gt;Synopsis&lt;/h2&gt;

&lt;p&gt;vhcs.sh is an automated VHCS Installer for Debian/Ubuntu&lt;/p&gt;

&lt;h2 id='description'&gt;Description&lt;/h2&gt;

&lt;p&gt;I wrote this script in order to simplify the installation of VHCS on Debian and Ubuntu, it may work on other Debian variants with small modification&lt;/p&gt;

&lt;h2 id='installation'&gt;Installation&lt;/h2&gt;

&lt;p&gt;To install VHCS on debian, you should do the following as root (note the #)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# wget http://github.com/eMxyzptlk/vhcs.sh/raw/master/vhcs.sh
# chmod a+x vhcs.sh
# ./vhcs.sh&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And follow the instructions.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Multiple Window Manager using one Xinitrc</title>
   <link href="http://wael.nasreddine.com/projects/multi-wm-xinitrc.html"/>
   <updated>2009-09-19T00:00:00+02:00</updated>
   <id>http://wael.nasreddine.com/projects/multi-wm-xinitrc</id>
   <content type="html">&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Author&lt;/strong&gt;: &lt;a href='http://wael.nasreddine.com'&gt;Wael Nasreddine&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;Source Code&lt;/strong&gt;: &lt;a href='http://github.com/eMxyzptlk/MultiWmXinitrc'&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id='synopsis'&gt;Synopsis&lt;/h2&gt;

&lt;p&gt;Tired of editing your ~/.xinitrc each time you want to start a different window manager?, I have the solution for you, one .Xinitrc to start everything without ever editing .xinitrc&lt;/p&gt;

&lt;h2 id='description'&gt;Description&lt;/h2&gt;

&lt;p&gt;I was tired of editing/commenting Window Managers in .xinitrc, So I decided to look for a way to start any Window Manager, switch between them using one command line, and also make sure that the command &amp;#8216;startx&amp;#8217; starts the last Window Manager used&amp;#8230;&lt;/p&gt;

&lt;p&gt;The idea goes like this, the real xinitrc file will be called .Xinitrc, .xinitrc will be a symbolic link to .xinitrc-sessions/windowmanager, and .xinitrc-sessions/windowmanager is just a small file that goes something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/bin/sh
source $HOME/.Xinitrc&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So when you call startx, .Xinitrc will be called, in .Xinitrc the Window Manager name will be concluded from the file which .xinitrc links to (in this case .xinitrc-sessions/windowmanager)&lt;/p&gt;

&lt;p&gt;To make the task even easier, instead of creating .xinitrc-sessions/* and .xinitrc link, I created a small and simple bash script which will create all the required files/links needed to launch the Window Manager&lt;/p&gt;

&lt;p&gt;example:&lt;/p&gt;

&lt;p&gt;If I want to run awesome, all I have to do is call:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ xsession awesome&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If I want to change to gnome, so&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ xsession gnome&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;and now, running:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ startx&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;will launch gnome as it was the last Window Manager&lt;/p&gt;

&lt;h2 id='installation'&gt;Installation&lt;/h2&gt;

&lt;p&gt;To install you need &lt;a href='http://www.git-scm.com'&gt;git&lt;/a&gt; installed&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git clone git://github.com/eMxyzptlk/MultiWmXinitrc.git

cd MultiWmXinitrc

git submodule init
git submodule update

make
sudo make install&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This will install everything to /usr/local, If you want to install them in another place, like your home directory then use the prefix option as in&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;make prefix=${HOME} install&lt;/code&gt;&lt;/pre&gt;</content>
 </entry>
 
 <entry>
   <title>Jail Servers!</title>
   <link href="http://wael.nasreddine.com/blog/jail-servers.html"/>
   <updated>2008-03-19T00:00:00+01:00</updated>
   <id>http://wael.nasreddine.com/blog/jail-servers</id>
   <content type="html">&lt;p&gt;Hello,&lt;/p&gt;

&lt;p&gt;Well In this article I will be discussing jails, what they are, what are the benefits of having them and most importantly how to create/manage and use them.&lt;/p&gt;

&lt;h2 id='introduction'&gt;Introduction&lt;/h2&gt;

&lt;p&gt;Jails are like they are called, Jail to processes running inside them, a process running inside a jail cannot have any access to the host it is running inside, which is a huge security improvement, let&amp;#8217;s have some examples&amp;#8230; This website is running on FreeBSD 7.0-RELEASE it has Web/Mail/MySQL servers, imagine, somehow, my WEB server ( apache ) was compromised, the attacker will have access to the WEB pages, MySQL databases and Mails&amp;#8230; So to improve security I set up the Jail system from scratch on a clean installation, now each server (WEB, MySQL, Mail) runs in it&amp;#8217;s &lt;em&gt;virtual&lt;/em&gt; server, if one is compromised at least it stays that way, there is no way an attacker could access another jail.&lt;/p&gt;

&lt;h2 id='requirements'&gt;Requirements&lt;/h2&gt;

&lt;p&gt;To deploy a server with jails, you need a recent FreeBSD release, I advise FreeBSD-6.3 and above, and you should have either a NIC that supports virtual interfaces ( most recent cards do), or multiple interface each one for a jail ( Actually since the jail is like virtual servers, each jail require it&amp;#8217;s own IP )&lt;/p&gt;

&lt;h2 id='preparation'&gt;Preparation&lt;/h2&gt;

&lt;p&gt;Well you should begin by installing a clean FreeBSD ( I will not cover base installation please refer to FreeBSD handbook for that ).&lt;/p&gt;

&lt;p&gt;So first we start by pulling ports and src&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ports:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;portsnap fetch extract&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;src:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# Copy the example supfile to your /etc directory
cp /usr/share/examples/cvsup/standard-supfile /etc

# Use &amp;#39;sed&amp;#39; to change the default source server
sed -i.bak &amp;quot;s/CHANGE_THIS/cvsup11/g&amp;quot; /etc/standard-supfile

# Use &amp;#39;csup&amp;#39; to update our local /usr/src tree
csup -g -L 2 /etc/standard-supfile&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now you should install ezjails so let&amp;#8217;s install it.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/usr/ports/sysutils/ezjail
make install clean&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now create the basejail and the newjail (template) just run ezjail-admin update and go get a cup of coffee, it&amp;#8217;s gonna take a while&amp;#8230;&lt;/p&gt;

&lt;p&gt;Once that finished, you are ready to install jail now, just use ezjail-admin to create jails, it&amp;#8217;s fast and automated all you have to do is&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ezjail-admin create JAILNAME JAILIP&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;but &lt;strong&gt;Don&amp;#8217;t run it just yet&lt;/strong&gt;, we must have the network for our jails up and running, you can run the above command and ezjail will warn that the ip is unknown, so it&amp;#8217;s better to make sure network exists.&lt;/p&gt;

&lt;p&gt;A side note, in this article we will assume you are creating 3 jails.&lt;/p&gt;

&lt;h2 id='network'&gt;Network&lt;/h2&gt;

&lt;p&gt;The network part is a bit tricky, if you have the server running behind a router (NAT) then you don&amp;#8217;t need the part about pf below, otherwise you should have it!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Multiple NICs&lt;/p&gt;

&lt;p&gt;If your server has multiple NICs then you should assign an IP for each connect NIC, add something like this to /etc/rc.conf ( assuming your NICS are vr0, vr1 and vr2, anyway check them with ifconfig -a )&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ifconfig_vr0=&amp;quot;inet 192.168.0.1 netmask 255.255.255.0&amp;quot;
ifconfig_vr1=&amp;quot;inet 192.168.0.2 netmask 255.255.255.0&amp;quot;
ifconfig_vr2=&amp;quot;inet 192.168.0.2 netmask 255.255.255.0&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Single NIC&lt;/p&gt;

&lt;p&gt;In this case, your NIC should pass traffic from/to the jails, so you should add the following to your /etc/rc.conf ( also assuming your network card is vr0)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ifconfig_vr0_alias0=&amp;quot;inet 10.0.0.1 netmask 255.255.255.255&amp;quot;
ifconfig_vr0_alias1=&amp;quot;inet 10.0.0.2 netmask 255.255.255.255&amp;quot;
ifconfig_vr0_alias2=&amp;quot;inet 10.0.0.3 netmask 255.255.255.255&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now that the network is up, we have to make sure that traffic pass through the host from/to the jails, I will cover 2 cases, server running behind a router (NAT), and server connect directly to the Internet without NAT.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Server Behind NAT:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your server is behind a NAT it should be easy, just redirect each port to the Jail IP, for example redirect the port 80 to the IP you assigned for the Apache jail.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Server connected directly:&lt;/p&gt;

&lt;p&gt;You should use the freebsd pf command, edit /etc/pf.conf and add something like:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# Interface declarations
ext_if=&amp;quot;vr0&amp;quot;
all_if=&amp;quot;{vr0, lo0}&amp;quot;

# Internal network subnet
int_net=&amp;quot;10.0.0.0/32&amp;quot;

# Name and IP of our webserver
APACHE=&amp;quot;10.0.0.2&amp;quot;
# Rule 1:
# redirect any packets requesting port 80 received on the loopback(lo0)
# device and the external card (vr0) to our jailed webserver
rdr on $all_if proto tcp from any to vr0 port 80 -&amp;gt; $APACHE port 80

# Rule 2:
# allow our jail to access the internet
nat on $ext_if from $APACHE to any -&amp;gt; vr0&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;and make sure you add&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# Enable port forwarding and packet filtering
gateway_enable=&amp;quot;YES&amp;quot;
pf_enable=&amp;quot;YES&amp;quot;
pf_rules=&amp;quot;/etc/pf.conf&amp;quot;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;to your rc.conf!!&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id='jails_creation'&gt;Jails creation&lt;/h2&gt;

&lt;p&gt;You should create the jails now, just create a jail using&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ezjail-admin create JAIL JAILIP&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id='post_installation'&gt;Post Installation&lt;/h2&gt;

&lt;p&gt;Try starting the jails&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/usr/local/etc/rc.d/ezjail.sh start&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;if all jails starts successfully then you should begin installing/configuring them to enter a jail you should first see the list of running jails, this is done by running jls, you will get a list with ID, HOSTNAME, IP and PATH, for example:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;%jls
JID  IP Address      Hostname                       Path
2  10.0.0.3          MAIL                           /usr/jails/world/MAIL
1  10.0.0.2          WWW                            /usr/jails/world/WWW&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Sources: &lt;a href='http://www.dev-urandom.com/FreeBSD/jails'&gt;dev-urandom&lt;/a&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Install Archlinux</title>
   <link href="http://wael.nasreddine.com/blog/install-archlinux.html"/>
   <updated>2006-01-12T00:00:00+01:00</updated>
   <id>http://wael.nasreddine.com/blog/install-archlinux</id>
   <content type="html">&lt;h1 id='introduction'&gt;Introduction&lt;/h1&gt;

&lt;p&gt;Arch Linux is a general purpose linux distribution that can be molded to do just about anything. It is fast, lightweight, flexible, and most of the parts under the hood are quite simple to understand and tweak, which can make it a good distro to &amp;#8220;learn the ropes&amp;#8221; on. We do not provide any configuration helper utilities (ie, you won&amp;#8217;t find &lt;em&gt;linuxconf&lt;/em&gt; in here) so you will quickly become very proficient at configuring your system from the shell commandline.&lt;/p&gt;

&lt;p&gt;Arch Linux uses i686-optimized packages which gives us improved performance over some of our i386-optimized cousins. This means that Arch Linux will only run on a Pentium II processor or higher. We try to stay fairly bleeding edge, and typically have the latest stable versions of software.&lt;/p&gt;

&lt;p&gt;Arch Linux uses the Pacman package manager, which couples a simple binary package format with an easy-to-use build system, allowing the users to easily manage and customize their packages, whether they be official Arch packages or the user&amp;#8217;s own homegrown ones. The repository system allows users to build and maintain their own custom package repositories, which encourages community growth and contribution.&lt;/p&gt;

&lt;p&gt;Pacman can keep a system up to date by synchronizing package lists with the master server, making it a breeze for the security-conscious system administrator to maintain. This server/client model also allows you to download/install packages with a simple command, complete with all required dependencies (similar to Debian&amp;#8217;s apt-get).&lt;/p&gt;

&lt;p&gt;Arch&amp;#8217;s official package set is fairly streamlined, but we supplement this with a larger, more complete &amp;#8220;extra&amp;#8221; repository that contains a lot of the stuff that never made it into our core package set. This repository is constantly growing with the help of packages submitted from our strong community.&lt;/p&gt;

&lt;p&gt;Arch Linux does not provide any official support, but you will find a lot of helpful people on our IRC channel and on our user forums. Chances are that some other Archer has had the same problem/question as you and it&amp;#8217;s already been answered. Ask around!&lt;/p&gt;

&lt;p&gt;Arch Linux uses a &amp;#8220;rolling release&amp;#8221; system which works like this: We have two versions of our core package set at any given time, &lt;strong&gt;Current&lt;/strong&gt; and &lt;strong&gt;Release&lt;/strong&gt;. The Current repository always contains the latest and greatest versions of packages. As soon as a package is updated it is part of the Current repository, so this is the one to follow if you want to stay very up to date. The Release repository follows the semi-regular snapshot releases and does not update until the next snapshot/iso has been released. For example, the Release repository will point to all packages on the 0.5 ISO until we release 0.6; then it will point to 0.6 packages until 0.7 is released. This is useful if you only want to update your system when a new release is available.&lt;/p&gt;

&lt;p&gt;So, to sum up: Arch Linux is a workhorse distribution designed to fit the needs of the competent linux user. We strive to make it both powerful and easy to manage, making it an ideal distro for servers and workstations. Take it in any direction you like.&lt;/p&gt;

&lt;h1 id='getting_started'&gt;Getting Started&lt;/h1&gt;

&lt;p&gt;First you need to grab the latest version of Arch, This article was written when Arch 0.7.1 was released, so please go to official site and grab it from the download page, Please use torrent and if you can help everyone by seeding it&amp;#8230; Now burn the iso on a cd (i don&amp;#8217;t think i have to teach u how to do this) and let&amp;#8217;s get started with it&amp;#8230;&lt;/p&gt;

&lt;h1 id='booting_arch_and_prepare_for_installation'&gt;Booting Arch and Prepare for installation&lt;/h1&gt;

&lt;p&gt;Put the cd into your cd-rom drive and reboot your computer, be sure that your computer is set to boot from cd-rom first (refer to your motherboard/bios manual), when prompted to boot just press enter&amp;#8230; After it boots you will find yourself on a console, so you are ready to begin installation.. NOTE: if you have another keyboard layout than Qwerty, you may type the command&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;km&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;to load the keyboard layout.. Now start installation by typing Code:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;arch/setup&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;now you need to proceed into partitioning the hard disk, so choose the partitioning, choose manual if you want to partition it manually, otherwize you can choose automatic to erase the whole hard disk and partioning it automatically&amp;#8230; If you choose manually, &lt;a href='http://www.google.com/search?q=manual+cfdisk'&gt;cfdisk&lt;/a&gt; will load, be sure you parition the hard disk in order to have 2 partition ready for use (one as / and another one as swap, you can make more if you want a seperated /home /boot etc&amp;#8230;), the parition to use as / must be type &lt;strong&gt;83&lt;/strong&gt; and swap must be type &lt;strong&gt;82&lt;/strong&gt;, when you are done with cfdisk, click on &lt;strong&gt;write table&lt;/strong&gt; and then on quit.&lt;/p&gt;

&lt;h1 id='installing_base_system'&gt;Installing Base System&lt;/h1&gt;

&lt;p&gt;Now choose mounting file system, choose the partiton type 83 as /, and the one type 82 as swap, click on Select Packages and choose &lt;strong&gt;only base install&lt;/strong&gt;. Arch will install base system now, after that install the kernel 2.6 now about bootloader, Actually the best one to use in my opinion is grub, but i will discuss here wether to install one or not, actually since the bootloader (Grub) of my Ubuntu Distribution is used to access the other Two Distribution, I dont install bootloader, instead i just boot ubuntu after installing Arch and add the grub entry of it to my ubuntu&amp;#8217;s menu.lst, so if you would like to do like me here&amp;#8217;s what to do: When you finish base install + kernel, then just quit Installation and reboot your PC by typing&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;reboot&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Go to your ubuntu (or the other distro you have) edit your menu.lst ( &lt;strong&gt;sudo vi /boot/grub/menu.lst&lt;/strong&gt; ) and add the below lines At the end of the file, I&amp;#8217;ll suppose the partition Arch is on, is hda3 ( type fdisk -l /dev/hda ) to know which one it is exactly, then you need to tweak the lines below for your configuration, for example fro hda3 i use (hd0,2) and root=/dev/hda3, but for hdb4 for example you have to use (hd1,3) root=/dev/hdb3 (hdX,Y) will be: * X the number of the hard disk * Y the number of the partition&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;title Arch Linux root (hd0,2)
	kernel /boot/vmlinuz26 root=/dev/hda3 ro
	initrd /boot/initrd26.img&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now reboot your Ubuntu (ot whatever it is) and boot into Arch&lt;/p&gt;

&lt;p&gt;NOTE: There&amp;#8217;s something which have confused me, actually if you didn&amp;#8217;t notice, the setup did not ask you to change the root password, but when you boot it the first time you will be asked for a login, actually login with root, it will not ask you for a password.&lt;/p&gt;

&lt;h1 id='getting_networking_up'&gt;Getting Networking Up&lt;/h1&gt;

&lt;p&gt;I will cover in this section only Wired connection, actually you cant get wireless if you don&amp;#8217;t have at least wired at the first steps (actually you can but i will not cover them)&lt;/p&gt;

&lt;p&gt;Let&amp;#8217;s check if your modules are loaded first, you can do that by typing&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;lsmod | grep &amp;quot;8139too&amp;quot;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If the modules are up, then check the state of eth0&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ifconfig eth0&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;if you get some output than everything is ok, just need to get it up and running, so let&amp;#8217;s edit first the rc.conf file&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;vi /etc/rc.conf&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You will find something like&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;eth0=&amp;quot;inet 192.168.0.2 etc...&amp;quot;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;replace the whole line with&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;eth0=&amp;quot;dhcp&amp;quot;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;make sure the line that begins with INTERFACES look like&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;INTERFACES=(lo eth0)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That will give you internet when you reboot but to get internet right now you have to get it up then do the below two commands&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/etc/rc.d/network restart&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;test if you have internet&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ping google.com&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;if you have internet, then you are ready to proceed to the next step&lt;/p&gt;

&lt;h1 id='updating_the_system_installing_x_gnome_gdm'&gt;Updating the System, Installing X, Gnome, gdm&lt;/h1&gt;

&lt;p&gt;I suppose that you already have Internet before beginning this step, if that&amp;#8217;s the case then let&amp;#8217;s get started by upgrading the system to the latest vesrion available&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;pacman -Syu&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;when that is done, let&amp;#8217;s Install X and gnome&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;pacman -S xorg gdm gnome gnome-extra&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The above command will install gnome, gdm and all other dependicy, the download can take a while, so go grub a coffe or something&lt;/p&gt;

&lt;p&gt;NOTE: Do not reboot yet.&lt;/p&gt;

&lt;h2 id='configuring_x'&gt;Configuring X&lt;/h2&gt;

&lt;p&gt;Lets start by configuring X, there&amp;#8217;s actually Three methods to configure it&lt;/p&gt;

&lt;h3 id='configuring_using_xorgconfig'&gt;Configuring using xorgconfig&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;xorgconfig&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;and answer all the questions, it will create the xorg.conf for you&lt;/p&gt;

&lt;h3 id='configuring_using_hwd'&gt;Configuring using hwd&lt;/h3&gt;

&lt;p&gt;There&amp;#8217;s a tool called hwd which will actually configure xorg for you, but unlike xorgconfig you will not have any question to answer, though hwd will create xorg.conf.hwd afterwards so you need to manually copy it to xorg.conf so let&amp;#8217;s first install it&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;pacman -S hwd&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Run it&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;hwd -x&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Copy the config file to the correct place&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cp /etc/X11/xorg.conf.hwd /etc/X11/xorg.conf&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;NOTE: Dont forget to backup xorg.conf if you had one before running the above command.&lt;/p&gt;

&lt;h3 id='copying_ubuntus_xorgconf'&gt;Copying Ubuntu&amp;#8217;s xorg.conf&lt;/h3&gt;

&lt;p&gt;This worked for me like a charm but i don&amp;#8217;t guarentee that it will work for you, actually I use ubuntu&amp;#8217;s xorg.conf, just copy it to /etc/X11&lt;/p&gt;

&lt;p&gt;Don&amp;#8217;t forget to test X server after configuring it!!&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;startx&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;to run X, to quit it just Press &lt;strong&gt;Ctrl + Alt + BackSpace&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NOTE: Do not reboot yet.&lt;/p&gt;

&lt;h1 id='configuring_gdm'&gt;Configuring gdm&lt;/h1&gt;

&lt;h2 id='using_rcconf_recommended'&gt;Using rc.conf (recommended)&lt;/h2&gt;

&lt;p&gt;You must add gdm to your DAEMONS array in /etc/rc.conf&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;vi /etc/rc.conf&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Look for the code that looks like&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;DAEMONS=(syslog-ng .... )&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Add gdm to it&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;DAEMONS=(syslog-ng .... gdm)&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id='using_inittab'&gt;Using inittab&lt;/h2&gt;

&lt;p&gt;Actually gdm dont need any configuration but i will tell you how to configure your system to run gdm, so you need to change the init startEdit the file /etc/inittab&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;vi /etc/inittab&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Replace&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;id:3:initdefault:&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;With&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;id:5:initdefault:&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;and replace&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;x:5:respawn:/usr/X11R6/bin/xdm -nodaemon&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;With&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;x:5:respawn:/opt/gnome/sbin/gdm -nodaemon&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;NOTE: Do not reboot yet.&lt;/p&gt;

&lt;h1 id='add_another_user'&gt;Add Another User&lt;/h1&gt;

&lt;p&gt;For sure you will not use root, you must create a new user, so lets do it, let&amp;#8217;s create your group first&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;groupadd USERNAME&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;replace USERNAME with your username Launch adduser now&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;adduser&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Fill your username with the same USERNAME value above, leave UID blank, put&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;USERNAME&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;for the initial group, fill Additional Groups with&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;users,wheel,audio&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Leave all the rest to the default values except for you password&amp;#8230;&lt;/p&gt;

&lt;p&gt;NOTE: Do not reboot yet.&lt;/p&gt;

&lt;h1 id='making_the_audio_work'&gt;Making the audio work&lt;/h1&gt;

&lt;p&gt;The biggest problem i has is making the audio work, but actually repairing it was that easy, you must install alsa-lib alsa-utils and alsa-oss&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;pacman -S alsa-lib alsa-utils alsa-oss&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You must be sure that you are within the audio group&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;groups USERNAME&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If audio is not within the output then you need to run&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;gpasswd -a USERNAME audio&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You need to enable alsa daemon&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;vi /etc/rc.conf&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;add&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;alsa&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;to&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;DAEMONS=( .... )&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Where &amp;#8230;. are some entries just add it at the end just before the last ), here&amp;#8217;s a sample of the line below&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;DAEMONS=(syslog-ng !hotplug !pcmcia network netfs crond cpudyn acpid portmap alsa)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;NOTE: You might not have the same line, i&amp;#8217;m sure u dont have cpudyn, acpid not portmap in this line, but do not mind it actually all your interrest here is alsa&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;DAEMONS=(syslog-ng !hotplug !pcmcia network netfs crond cpudyn acpid portmap alsa)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;NOTE: Do not reboot yet.&lt;/p&gt;

&lt;h1 id='setting_up_the_hostname'&gt;Setting up the hostname&lt;/h1&gt;

&lt;p&gt;You might want to change the hostname, so please open /etc/rc.conf&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;vi /etc/rc.conf&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Replace myhost with YOURHOSTNAME, of course YOURHOSTNAME will be the hostname u want (alphanumerique)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;HOSTNAME=&amp;quot;myhost&amp;quot;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You must also (either if u changed the hostname or not) add the hostname to /etc/hosts, open /etc/hosts&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;vi /etc/hosts&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Replace the Line&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;127.0.0.1               localhost.localdomain   localhost&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;With&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;127.0.0.1               localhost.localdomain   localhost YOURHOSTNAME&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Otherwize gnome will have problems to open! Reboot After all what you have done above, finally you got a system up and running, all you need to do now is to reboot&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;reboot&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id='unmuting_sound'&gt;Unmuting Sound&lt;/h1&gt;

&lt;p&gt;When you reboot you will notice that you don&amp;#8217;t have sound yet, well actually you have but it&amp;#8217;s just muted, so type the below commands&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;amixer set Master 75 unmute amixer set PCM 75 unmute&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now adjust the volume using the gnome-volume applet (beside the clock) and try playing a sound&lt;/p&gt;

&lt;h1 id='congratulations'&gt;Congratulations&lt;/h1&gt;

&lt;p&gt;If you achieved this step and no errors occured then Congratulations And Voilà, you are using your new Arch linux&lt;/p&gt;

&lt;h1 id='some_usefull_links'&gt;Some Usefull Links&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='http://wiki.archlinux.org/index.php/Pacman'&gt;Pacman&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href='http://wiki.archlinux.org/index.php/Wireless_Setup'&gt;Wireless Setup&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href='http://wiki.archlinux.org/index.php/Install_and_configure_xorg'&gt;Install and Configure Xorg&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href='http://wiki.archlinux.org/index.php/Gnome'&gt;Gnome&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;P.S: This post has been salvaged from an old &lt;strong&gt;dead&lt;/strong&gt; installation, Thanks to &lt;a href='http://web.archive.org/web/20060411211951/http://wael.nasreddine.com/Articles/Articles/Install_Arch_Linux.html'&gt;web-archive&lt;/a&gt;&lt;/p&gt;</content>
 </entry>
 

</feed>
