Building Enlightenment e17 on Fedora 10 x86_64

April 2nd, 2009

DISCLAIMER: The following did NOT work correctly for me. The applications worked correctly, but the desktop fails. When I find out what went wrong, I will modify this post to suit.

Today i have begun to build and install Enlightenment e17 on my Fedora 10 x86_64 laptop. I have Googled for a few sites to help me get started, only to discover their directions are very lacking. VERY lacking. So to compensate, i am writing this article on the things you need to get started with Enlightenment e17.
If you would like to try out e17, you can use yum to install some of the base componenets, but remember to erase them with `yum -e enlightenment` before you start building e17 or some severe nastiness could occur. The packages I have installed for my evaluation are: bitmap_fonts, e_dbus, edje, efreet, embryo, enlightenment, eterm, and libast.
The reason I didn’t just use the yum packages is that I know e17 has a lot of dependencies and a lot of hidden features. I like to have a lot of features! Read on to find out about some of those features.

Step 1: Preparations

You are going to need a few dependencies for this. Some you can get via yum, and others you need to get from a version control repository. Here are the command you need to execute:
sudo yum install libjpeg-devel libtiff-devel libpng-devel giflib-devel freetype-devel libXext-devel libid3tag-devel subversion imlib2-devel libxcb libxcb-devel libxcb-util libxcb-util libxcb-util-devel glew-devel libXrender-devel directfb-devel xine-lib-devel gstreamer-devel gstreamer-plugins-base-devel vlc-devel
mkdir ~/Download/e17
cd ~/Download/e17
svn co http://svn.enlightenment.org/svn/e
svn co http://ememoa.googlecode.com/svn/trunk/ ememoa-read-only

Step 2: The long drive home

Ok. Now that we have our tools, we can start the dirty work: building e17. I am listing this in the order you should build. Just follow along and shout, “Hoo-Raaahhhh!!!” at the appropriate times. For brevity, I will be listing the package names in bold font, then the directory in which it can be found in brackets. Then I will give a hort description of the file, and any options to be passed to ./configure. You should run three commands with each step:
1. `cd` to change into that directory. All directory names will be relative to ~/Download/e17/e/trunk/, except the ememoa package, which should be ~/Download/e17/ememoa-read-only/
2. ‘./configure –libdir=/usr/lib64 –prefix=/usr’ with the config options appended to the end, seperated by spaces. See the first two examples to see what I mean. (NOTE: If you are missing the ./configure script for any of the following steps, run ./autogen.sh first.)
3. `gmake && sudo gmake install` This command builds the package, prompts for your password, if you are in the sudoers file, and installs it. This step may take some time before prompting for your password.

Ememoa [ ememoa-read-only/ ] –enable-pthread –enable-use64
We are going to build ememoa first. From the ememoa website, it is a “memory pool allocator that helps to improve memory allocation speed and memory usage by improving memory locality during data manipulation.” What this means is that ememoa helps speed up memory access, which will make e17 faster.
So if you’re following along, you should execute the following:
cd ~/Download/e17/ememoa/
./configure –libdir=/usr/lib64 –prefix=/usr –enable-pthread –enable-use64
make && sudo make install
This package may not install a file in the correct place, so we need to make sure it is. Run ` ls /usr/lib64/pkgconfig/ememoa.pc`. If it says there is no file, then issue:`mv /usr/lib/pkgconfig/ememoa* /usr/lib64/pkgconfig/`
Imlib2 [ imlib2/ ]
This is a tricky one. So much software depends on imlib that is will be nearly impossible to uninstall. You can, however, build imlib and simply install it over existing files. If you want to do this, just run `cd ~ && yumdownloader imlib2 imlib2-devel`. If you have problems after building imlib2, simply login in a terminal and issue `sudo rpm -ivh –force ~/imlib2*.rpm` (replace ‘user’ with your username) to restore the old files. OK – now that the disclaimer is over with, on to the next commands:
cd ../e/trunk/imlib2
./configure –prefix=/usr –libdir=/usr/lib64
The end of the output of this last command will give you a asummary of what is going to be included in the build. You should see a list of “Image Loaders” with all yes’s. If you don’t, then issue `yum install libXXX-devel` for each one. For instance, if you see that TIFF and ID3 are “no,” then run `sudo yum install libtiff-devel libid3-devel`. “Use AMD64 for speed” should be yes and “use MMX…” should be no. I am not sure what “visibility hiding” is, so leave it as-is. Now issue:
make
sudo make install
eina [ eina/ ] –enable-ememoa
From the web site: “Eina is a multi-platform library that provides optimized data types and a few tools that could be used for projects.” To build:
Eet [ eet/ ]
Eet is a cool little library used for data input/output that is written very little and read very much.
Edb [ OLD/edb/ ]
The edb library is in the OLD directory, but some packages look for it and may use it. If you want to use this library, charge on!
Imlib2 Extras [ imlib2_loaders/ ]
Now that we have some libs installed, we can build some more imlib2 image loaders.
Imlib2 Extras [ imlib2_tools/ ]
This package contains some extra tools for developing with Imlib.
Evas [ evas/ ] –enable-gl-x11 –enable-gl-glew –enable-software-xcb –enable-buffer –enable-xrender-x11 –enable-software-sdl –enable-directfb –enable-fb
From the wiki: “Evas is a hardware-accelerated canvas API for X-Windows that can draw anti-aliased text, smooth super and sub-sampled images, alpha-blend, as well as drop down to using normal X11 primitives such as pixmaps, lines and rectangles for speed if your CPU or graphics hardware are too slow. ” This is how e17 gets its speed for its cool effects. The following lines are for installing it with all the backends enabled. There is one problem in the current SVN: glew support is not working. If you try the following ./configure line and make gives you an error, remove the “–enable-gl-glew” from the ./configure command and run it again. If you get errors while building, it means that the correct devel packages aren’t installed, and you should check Step 1 for the correct packages to install.
Ecore [ ecore/ ]
This is the core library for Enlightenment. It handles events, draws the GUI, and does a lot of graphic stuff. Just a simple few commands should pick up all the previous configuration information:
Efreet [ efreet/ ]
Efreet implements a bunch of protocols set by freedesktop.org. This includes icon themes, .desktop file support, and menus.
Embryo [ embryo/ ] –enable-doc
Embryo is a C-like scripting language used by enlightenment. Add ‘–enable-doc’ to the ./configure line if you want to install documentation for this.
Edje [edje/] –enable-doc –enable-edje-program-cache
From the wiki: “Edje is an attempt to find a middleground between theming and programming without turning the theme itself into just yet another program.” It is the awesome theming engine for enlightenment.
E_DBus [ e_dbus/ ]
This is the D-Bus connection for e17. It is used to get and set system information, using an interface common to a lot of applications.
ETK [ etk/ ]
Etk is the enlightenment toolit, which is based on EFL. If you managed to enable framebuffer support in ecore, this will automatically enable framebuffer support in etk.
EXML [ exml/ ]
A neat library for dealing with XML files.
Epsilon [ epsilon/ ] –enable-thumbnailer-xine
A library for creating quick thumbnails.
Emotion [ epsilon/ ]
A library for videos.
Enity [ enity/ ]
A library for creating dialogs, much like xdialog.
Etk Extras [ etk_extra/ ]
Extra libs for etk.
Evolve [ evolve/ ]
Allows you to theme your windows using an edje-like syntax..
Enlightenment Widget Library [ ewl/ ]
A toolkit for creating EFL-based GUIs.
Expedite [ expedite/ ]
Benchmarking suite for e17.
Enhance [ enhance/ ]
Allows you to use glade files with e17 libs for easier UI development!
Exchange [ PROTO/exchange/ ]
Enlightenment looks for this lib and uses it if it is installed. The README says “The enlightened way to exchange stuffs!” I’m not sure what this is, but we’re going to use it anyway! NOTE: this is a prototype library, and may not function when you download it. If the build fails with an odd error, it may be fixed by the following day.
Esmart [ esmart/ ]
A collection of smarter evas objects.
Enlightenment [ e/ ]
The actual enlightenment desktop environment.
Entrance [ entrance/ ]
An enlightenment login manager, to replace gdm, kdm, or xdm. In order to be able to run entrance as your display manager, you must edit a few files as root. In /etc/X11/xdm/Xsession, find the area that looks like: 

failsafe)
...code here....
gnome|gnome-session)
...code here....

and add the following lines before “failsafe)”:
enlightenment)
exec $SSH_AGENT /bin/sh -c "exec -l $SHELL -c \"enlightenment\""
;;

Then open /etc/sysconfig/desktop and make sure it says DISPLAYMANAGER=enlightenment

Step 3: EApps

Now that we’ve built our main libraries and software – on to the fun stuff! We are now going to build more apps for use with enlightenment.

Edje Editor [ edje_editor/ ]
This is an editor for theme files. Really awesome!
Edje Viewer [ edje_editor/ ]
This is an editor for theme files. Really awesome!
Elicit [ elicit/ ]
A screen zoomer.and color picker.
Elitaire [ elitaire/ ]
Solitaire game for e17.

Google Summer of Code 2009 Project Ideas

April 2nd, 2009

Google has announced a another Summer of Code for 2009 (video)! Here is a list of some project idea pages for this year.

Here<<<

jQuery Style Sheet (CSS) Switcher

April 1st, 2009

I have been looking for a nifty style-switching script, and have found none. So here is the code for a checkbox-based style switcher. This uses jQuery.

The Javascript:

  1. /*ChangeStyle.js:
  2. * -by Skaman Sam Tyler – http://rbe.homeip.net
  3. *
  4. * This script uses checkboxes to add and remove stylesheets from the page.
  5. * It takes the value of the ‘rel’ attribute from the checkbox and creates a stylesheet link with it.
  6. * */
  7.  
  8. if ($) {    //check for jQuery
  9.  
  10.   //on document load, uncheck all checked boxes and add function handler for
  11.   $(document).ready( function() {
  12.     $(‘.styleToggle’).removeAttr("checked");    //uncheck all checked
  13.     $(‘.styleToggle’).click( function() {        //add handler for clicking
  14.       toggleStyle(this.getAttribute("rel"));
  15.       return true;
  16.     });
  17. });
  18.  
  19. //the toggling of the style. it takes a single parameter: the href of the stylesheet to toggle
  20. function toggleStyle(href) {
  21.  
  22.   //check for presence of link, if it exists, delete it, else, add it.
  23.   if($(‘link[href*='+href+']‘).size()!=0){
  24.     $(‘link[href*='+href+']‘).remove();
  25.   }else{
  26.     console.log("Adding: "+$(‘link[href*='+href+']‘));
  27.     $(‘head’).append(‘<link rel="stylesheet" href="’+href+‘" type="text/css" media="screen" />’);
  28.   }
  29. }
  30. }

The HTML file should include something like this:

  1. <form name="styleSwitchForm">
  2. <li><label><input type="checkbox" rel="/styles/red.css" class="styleToggle"/> Red Style</label></li>
  3. <li><label><input type="checkbox" rel="/styles/blue.css" class="styleToggle"/> Blue Style</label></li>
  4. <li><label><input type="checkbox" rel="/styles/green.css" class="styleToggle"/> Green Style</label></li>
  5. </ul>
  6. </form>
  7.  

Windows vs. Linux on MSI GX700

March 21st, 2009

When I built my desktop/server in 2005, I used as many MSI (Micro-Satr International) parts as I could find. They were a little more expensive, but some trusted friends told me MSI was the way to go. I have been overly impressed with the hardware, especially after an uptime of 500+ days. The systemwas extremely stable. Now I try to buy MSI products whenever possible.

So – Last summer I knew I would have enough money to finally buy a laptop of my own. I was looking for a Desktop replacement for school.  So naturally, I went in search of an MSI laptop. Since you can’t buy from the MSI web site, I had to go to a reseller, and RK Computers was MSI’s suggested reseller. For months, I looked at all the models and researched their specifications, as it had to run Linux and Windows. After my thorough evaluation, i decided to purchase a MSI GX700. Here are the specs:

MSI MS-1719 (GX700).
Display: WUXGA 1920 x 1200 Non-Glare-9 Cell Main Battery
MXM II Graphics Module: NVIDIA® GeForce® 8600M-GT 512MB VRAM + Turbo Cache-DX 10
Optical-DVD Or Blu-ray: Integrated Super-Multi Drive-Dual Layer
Core 2 Duo Processor: Intel Core™2 45nm T8300 2.40Ghz 3MB 800MHz
Compound-Heat Sink: Wet Arctic Silver 5 High-Density CPU Thermal Compound
2.5 Hard Drive: 320GB WD SATA II 5400 RPM 3Gbs 8MB Cache
Turbo Memory: No Turbo Memory-Windows Vista Support Only
Memory-DDR2 667: 4GB OCZ DDR2 667 PC2-5400 CL5 Dual Channel Kit
Wireless: Intel PRO Wireless 3945 802.11 a/b/g 11/54Mbps
Bluetooth: Integrated MS-6837D Bluetooth 2.0 + EDR USB Module
ExpressCard Remote: No Media Remote
NoteBook Cooler: Cooler Master Notebook Cooler Widscreen-USB Powered-Black
Operating System: No Operating System
Microsoft Office MLK: No Software
Warranty Options: 3 Year Parts-Lifetime Labor Warranty*-Lifetime Tech Support*
Total: $1878.04

Windows Vista 64bit

Since I was a student when I purchased this fine machine, I could get Windows Vista through the MSDNAA (Microsoft Develepers Network Academic Alliance). So I got down to it and installed Vista 32bit, because I thought programs would be more compatable. This turned out to be a mistake. Even though all of the software and drivers seemed to work fine, after only a few short days, I ran into problems (including a BSOD). I can’t remember exactly what those problems were, but I decided to switch to 64bit Vista. Now that I have experienced it, Vista seems to have been made for 64bit architectures. Everything ran so much faster and much more stable than its 32bit counterpart.

Problems

The only problem I encountered is that the software for the special buttons (MSVCtrl) won’t work under 64bit, even though they are 64bit versions. One other mention is that you have to use the nVidia graphics drivers from MSI’s web site, as nVidia’s version won’t work properly.

Fedora 10 x86_64

After installing Vista, I moved on to Linux. My first Linux distribution (“distro” for short) was RedHat 5, and I have been using RedHat or Fedora ever since. Fedora 9 installed and worked fine, but I will only be covering Fedora 10 here, as it is the current release and is a LOT more stable. Fedora 10 is a great distro, with a lot of features and software for just about anything. All of the laptop’s hardware works great in Fedora.

After installing Fedora, I went straight to the nVidia web site to get drivers for the graphics card. Since I am interested in programming, I downloaded the CUDA-enabled drivers. (Note: you do not need any special nVidia drivers like with Vista – just use the standard Linux drivers.) CUDA is a technology, created by nVidia, which allows programs to use the graphics card processor (GPU) as if it were another CPU. These drivers were extremely stable, even though they were a beta release. As of now, CUDA support is enabled, by default, for all of nVidia’s stable drivers (greater than version 1.80).

I was expecting to have a few problems with the wireless card, as Linux support for wireless cards is a little limited, but it works great with the default drivers. The integrated bluetooth works, as well.

Problems

There are a few problems with Linux in general on this Laptop. The on-board sound chip is an Intel High-Definition audio chip, and Linux doesn’t have the proper drivers for this yet. The sound works, but when you plug in headphones, the laptop’s speakers do not mute as expected. (I am currently pouring over Intel’s driver guide for this chip, and may end up hacking the current driver to fix this problem.) There are also no working drivers available for the integrated webcam.

So that’s it! This laptop is a great buy for anyone – whether you want to play games or just want a nice big screen to type up your latest best-selling novel.

Building Chromium on Fedora 10 x86_64

March 11th, 2009

I am working on installing Chromium for Fedora 10 x86_64 bit. Here’s how you do it:

make sure a bunch of i386 libs are installed, by running the command:

yum install cairo.i386 cairo-devel.i386 cairomm.i386 cairomm-devel.i386 pango-devel.i386 atk-devel.i386 gperf freetype-devel.i386 glib2-devel.i386 glibc-devel.i386 dwdiff gtk-devel.i386 gtk2-devel.i386 fontconfig-devel.i386 libX11-devel.i386 libXrender-devel.i386 libXext-devel.i386

Then follow the same instructions listed on the Chromium Linux Build Page

Installing Aptana in Fedora Eclipse

February 14th, 2009

Aptana is a wonderful tool for web design. I have been using it for years for my personal web sites and my professional ones. I have been trying to get more people turned on to it, as well. When I installed Fedora 10 recently, I didn’t want to install Aptana, as it has, in the past, FooBar’d my Eclipse installation. However, I am learning Ruby (on rails), and want to install RadRails, which means I need Aptana. I thought about installing Aptana standalone, but don’t want to start up a new Eclipse platform just for my rails development. So -

First, I tried to install Aptana normally, as an eclipse plugin, several times. However, some parts of it refused to work and the “My Aptana” page never showed up. After assessing this problem, I thought there may be conflicts with some of the plugins Fedora installs through yum. Ihad  installed all the Eclipse plugins that my yum repositories offered.

So I removed all the plugins using yum. Since I needed those plugins, I had to get the update sites to install in Eclipse. Here are the update sites for the rpms, for convenience. You can get the same information by checking the Fedora Eclipse project wiki at http://fedoraproject.org/wiki/Eclipse.

Keep Installed:

eclipse-ecj.x86_64
eclipse-demos.noarch
eclipse-platform.x86_64
eclipse-rcp.x86_64
eclipse-setools.x86_64
eclipse-shelled.noarch
eclipse-slide.noarch
eclipse-swt.x86_64
icu4j-eclipse.x86_64
tomcat5-jasper-eclipse.noarch

Install Using Aptana:

Subclipse (SVN Integration):
http://subclipse.tigris.org/update_1.4.x :

eclipse-subclipse*
Eclipse Git:
http://www.jgit.org/update-site/ :

eclipse-egit.noarch

Install Using The Update Manager:

Ganymede:
http://download.eclipse.org/releases/ganymede :

eclipse-cdt* (C and C++ Development)
eclipse-emf* (Model and Model Development)
eclipse-gef* (Graphical editors and frameworks)
eclipse-jdt* (Java development)
eclipse-mylyn* (Collaboration Tools)
eclipse-pde.x86_64 (Java Development/Eclipse plug-in development environment)

Maven Integration for Eclipse:
http://m2eclipse.sonatype.org/update-dev/
(stable development)
or http://m2eclipse.sonatype.org/update/ (stable)
maven2-plugin-eclipse.x86_64

Linux Tools for Eclipse:
http://download.eclipse.org/technology/linuxtools/update/ :

eclipse-changelog.x86_64
eclipse-rpm-editor.x86_64

Checkstyle Plugin:

http://eclipse-cs.sourceforge.net/update:

eclipse-checkstyle.x86_64

Eclipse Perl Integration:
http://e-p-i-c.sourceforge.net/updates/testing :

eclipse-epic.x86_64

Babel (milti-lingual support):
http://download.eclipse.org/technology/babel/update-site/ganymede :

eclipse-nls-*.noarch

Photran (fortran support):
http://download.eclipse.org/technology/photran/updates/eclipse3.4cdt5.0 :

eclipse-photran* (requires cdt plugin)

PHPEclipse (php):
http://phpeclipse.sourceforge.net/update/stable/1.2.x/ :

eclipse-phpeclipse.x86_64

Pydev (python):
http://pydev.sourceforge.net/updates/ :

eclipse-pydev*

QuickRex (regular expression editor):
http://www.bastian-bergerhoff.com/eclipse/features :

eclipse-quickrex.noarch

Now you are ready to install the Aptana plugin, using this update site: http://update.aptana.com/install/studio/3.2/. I recommend installing Aptan before installing any of the previously mentioned plugins, for best compatability.

That’s it and good luck!

Drop-Down Menu with CSS

February 9th, 2009

This is the first post in a series of articles on web technologies I most commonly use. I will mostly use these posts as a central repository for my (X)HTML/CSS/Javascript/Perl/etc. code.

The CSS Drop-down Menu is fairly simple. It is simply a list with certain style attributes. We will begin by creating a simple XHTML page with a list for the menu, and a place for the styles. The names of the menu items must all be links.

  1. <?xml version="1.0" encoding="ISO-8859-1" ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  6. <title>Drop-Down Menu Test</title>
  7. <style type="text/css">
  8. @import menu.css
  9. </style>
  10. </head>
  11. <body>
  12. <ul class="menu">
  13. <li><a href="#">Menu 1</a></li>
  14. <li><a href="#">Menu 2</a>
  15. <ul>
  16. <li><a href="#">Sub Menu 2.1</a>
  17. <ul>
  18. <li><a href="#">Sub Menu 2.1.1</a></li>
  19. <li><a href="#">Sub Menu 2.2.2</a></li>
  20. <li><a href="#">Sub Menu 2.3.3</a></li>
  21. <li><a href="#">Sub Menu 2.4.4</a></li>
  22. </ul>
  23. </li>
  24. <li><a href="#">Sub Menu 2.2</a></li>
  25. <li><a href="#">Sub Menu 2.3</a></li>
  26. <li><a href="#">Sub Menu 2.4</a></li>
  27. </ul>
  28. </li>
  29. <li><a href="#">Menu 3</a>
  30. <ul class="submenu">
  31. <li><a href="#">Sub Menu 3.1</a></li>
  32. <li><a href="#">Sub Menu 3.2</a></li>
  33. <li><a href="#">Sub Menu 3.3</a></li>
  34. <li><a href="#">Sub Menu 3.4</a></li>
  35. </ul>
  36. </li>
  37. <li><a href="#">Menu 4</a></li>
  38. </ul>
  39.  
  40. </body>
  41. </html>

That’s all for the HTML! we’re only going to be dealing with the CSS from now on, which are placed in the file named ‘menu.css’. If you want to change the name, make sure you change the @import statement in the css in the header to point to the appropriate file.

Next, we want to apply our styles. The first styles we’ll create are for the actual mechanics of the menu: the showing and hiding of the items.

  1. .menu li>ul,.menu li>ol { display: none; }                                /*hide all submenus*/
  2. .menu li:hover>ul,.menu li:hover>ol { display: block; }    /*show all submenus on hover*/
  3.  

That’s it! That’s all there is to a really, really simple drop-down menu. No-frills, no fuss.

Problem 1: Internet Explorer

The previous solution only seems to work on Firefox, Opera, Safari, Konqueror, and all other KHTML and Mozilla-based browsers. What if we want to work with Internet Explorer? It seems we have to get dirty, since IE is not standards-compliant. One way to get IE on the train  is to use conditional comments. A conditional comment is something M$ invented because their browsers aren’t compatible with each other. Conditional comments only work on Internet Explorer.

  1. <!–[if IE 6]>
  2. @import menu_ie6.css
  3. <![endif]>
  4. <!–[if IE 5.5]>
  5. @import menu_ie55.css
  6. <![endif]>
  7. <!–[if IE 5]>
  8. @import menu_ie5.css
  9. <![endif]>
  10.  

You can also test ranges by using:

  1. <!–[if gte IE 5]>
  2. @import menu_ie.css
  3. <!–[else]>
  4. </style>
  5. <script type="javascript">
  6. //menu code in Javascript
  7. </script
  8. <style type="text/css" >
  9. <![endif]>
  10.  

This code tests if we are using IE 5 or greater, and if so, imports the IE5-relevant stylesheet. If the browser is less than IEv5, it closes the style tag, opens a javscript
tag which inserts a comment to do the dropdown meu in javascript. DO NOT, under any circumstances put the previous code on your web site. Nasty things will happen if you do!

That was just an example of conditional comments. Now on to our use of them.

Ugly!

The styles are pretty ugly so far, and have some serious alignment issues. This makes it pretty hard to select the submenus. The first thing we want to do is make sure the menus appear above all other elements on the page.

  1. /*all submenus*/
  2. .menu li>ul,.menu li>ol {
  3. float: left;
  4. margin-left: 0px;
  5. margin-top: -1.1em;
  6. list-style-type: none;
  7. position: absolute;
  8. background-color: #fffff;
  9. z-index: 10000;
  10. }

Installing Gentoo 2008 in (qemu) Sun’s VirtualBox on Fedora 10

February 2nd, 2009

I am currently taking a class on Operating System design and need to do some kernel hacking for the class. I thought about modifying the Fedora kernel, but decided against it, as I still want a stable system to operate in.So I looked into virtual machines, as Fedora has qemu and a nice graphical virtd client for managing virtual machines. While deciding on my mainstay distro (in 2000), I evaluated the gamut of Linux distros, so I decided to install Gentoo linux on my virtual machine because it rebuilds everyting on the fly.
I went to the Gentoo site and downloaded the minimal install CD for ia64. No luck here – it won’t even boot, just hangs.
Then I downloaded the minimal install CD for amd64. I got into the boot loader and booted the system, but it hung on the kernel module loading step.
I finally decided to try a LiveCD. This worked beautifully. However, I couldn’t start an X session, as the appropriate driver was not included on the CD. No real need, as I was installing it on my disk image. So I ran /opt/installer/bin/install and now it is installing fine. It is taking quite a while to install, however, and I hope to have it finished by the end of the day. (I have classes all day, and will resume install this evening.)

[more to come later...]

So I scrapped the idea of installing Gentoo on qemu. I t was just too slow and too much of a pain. So I decided to try out Sun’s VirtualBox for the first time. I really like it! On my machine, it is faster than qemu and VMWare. The reason for testing on VBox is that qemu doesn’t really support 64 bit OSs. I also wanted something that could take advantage of my hardware, and VMware does an OK job, but not at the level I want. It seems that VBox is everything I wanted, and i get speeds of almost the same as my host platform. I am running a benchmark program, nbench, and will post the results here when I finish.

nbench result for host OS (Fedora 10 x86_64 on Intel Core 2 Duo w/ 4Gb RAM):

BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)

TEST                : Iterations/sec.  : Old Index   : New Index
                    :                  : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT        :          1165.6  :      29.89  :       9.82
STRING SORT         :          258.88  :     115.67  :      17.90
BITFIELD            :      4.6794e+08  :      80.27  :      16.77
FP EMULATION        :          251.44  :     120.65  :      27.84
FOURIER             :           25958  :      29.52  :      16.58
ASSIGNMENT          :          34.798  :     132.41  :      34.34
IDEA                :            7068  :     108.10  :      32.10
HUFFMAN             :          2325.1  :      64.48  :      20.59
NEURAL NET          :          50.819  :      81.64  :      34.34
LU DECOMPOSITION    :            1652  :      85.58  :      61.80
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX       : 84.556
FLOATING-POINT INDEX: 59.082
Baseline (MSDOS*)   : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
==============================LINUX DATA BELOW===============================
CPU                 : Dual GenuineIntel Intel(R) Core(TM)2 Duo CPU     T8300  @ 2.40GHz 800MHz
L2 Cache            : 3072 KB
OS                  : Linux 2.6.27.12-170.2.5.fc10.x86_64
C compiler          : gcc version 4.3.2 20081105 (Red Hat 4.3.2-7) (GCC) 
libc                : libc-2.9.so
MEMORY INDEX        : 21.765
INTEGER INDEX       : 20.615
FLOATING-POINT INDEX: 32.769
Baseline (LINUX)    : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
* Trademarks are property of their respective holder.

nbench result for Gentoo 2008 x86_64 on Sun VirtualBox (w/ 768 Mb RAM):

BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)

TEST                : Iterations/sec.  : Old Index   : New Index
                    :                  : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT        :          1139.8  :      29.23  :       9.60
STRING SORT         :          250.16  :     111.78  :      17.30
BITFIELD            :      4.2657e+08  :      73.17  :      15.28
FP EMULATION        :          108.16  :      51.90  :      11.98
FOURIER             :           20163  :      22.93  :      12.88
ASSIGNMENT          :          34.385  :     130.84  :      33.94
IDEA                :            4207  :      64.34  :      19.10
HUFFMAN             :          2259.9  :      62.67  :      20.01
NEURAL NET          :          44.636  :      71.70  :      30.16
LU DECOMPOSITION    :          1589.6  :      82.35  :      59.46
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX       : 67.742
FLOATING-POINT INDEX: 51.348
Baseline (MSDOS*)   : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
==============================LINUX DATA BELOW===============================
CPU                 : Dual GenuineIntel Intel(R) Core(TM)2 Duo CPU     T8300  @ 2.40GHz 2399MHz
L2 Cache            : 64 KB
OS                  : Linux 2.6.27-gentoo-r8
C compiler          : x86_64-pc-linux-gnu-gcc 
libc                : 
MEMORY INDEX        : 20.781
INTEGER INDEX       : 14.479
FLOATING-POINT INDEX: 28.480
Baseline (LINUX)    : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
* Trademarks are property of their respective holder.

WebFX at UNCG

January 8th, 2009

Last semester, I started a project to ease my work quite a bit. I noticed that a lot of departments at UNCG want to add effects to their sites. In the past, I have hand-coded all the effects myself, on an as-needed basis. I have grown a little weary of doing this, as it may lead to sloppiness and errors in my code. So I started work on a project I call WebFX! WebFX is a mixture of javascript and CSS which adds effects and styles to elements based on the element’s class. All the class names begin with ‘webFX_’ and are usually suffixed with the name of the effect. Since WebFX uses the amazing jQuery library, all the effects should work across all browsers! Just in case, I have tested them in Opera 9.5, Firefox 3.1, Internet Explorer 5, 5.5, 6, and 7, Konqueror 4.1.3, Lynx 2.8.6, W3M 0.5.2, Amaya 11,

Effects

The following FX are “Special FX” designed to do add ‘flash’ to the user experience, without using Flash (the Macromedia kind). Javascript must be enabled.

Always-Visible (class=”webFX_alwaysVisible”)
The element will scroll down with the page, so it is always visible. The main use is to keep the navigation panel always visible to the user.

Image Rotation (class=”webFX_rotate”)
This is called Image Rotation, because most people will use it for such, but really, it will work on any element. It simply rotates all the child elements in order.

Slideshow (class=”webFX_slideshow”)
This is the same as Image Rotation, but with controls added to start, stop, and pause the rotation.

Gallery (class=”webFX_gallery”)
This is an extension of Slideshow, with an extra section for thumbnails.

User Interface

The following FX use the jQuery UI library, with a custom theme designed for UNCG. Javascript must be enabled.

Accordion (class=”webFX_accordion”)
This is a simple “Accordion” like interface for displaying data. It displays headers, and when the headers are clicked, the content is shown.

Tabbed Navigation (class=”webFX_tabs”)
This turns any list into a series of tabs, with a sub-navigation bar underneath.

DatePicker (class=”webFX_datePicker”)
This allows the user to select a date from a DatePicker, and change the value of the element. Mostly useful for text input fields in forms.

Dialog (class=”webFX_dialog”)
This displays a dialog (aka ‘message box’) with the first child’s content when the element is clicked. Probably not very useful at UNCG, without some extra scripting.

Slider (class=”webFX_dialog”)
This displays a slider that someone can manipulate. Not very useful at UNCG without some extra scripting.

Styles

The following are UNCG-themed styles meant to be applied to certain elements. No Javascript is required.

News (class=”webFX_news”)
This is the same as Accordion, but with no animation, just the style.

al at werk

August 7th, 2008


Posted by ShoZu