Archive for the ‘Computer’ Category

Debian Etch released, layla upgraded

Monday, April 9th, 2007

Etch has finally been released. I have upgraded layla (the server running this blog) from Sarge to Etch, and the upgrade process was pretty smooth. Only a few things needed manual attention.

Quite surprisingly, there weren’t any problems upgrading the kernel to 2.6.18, even though this required replacing hotplug with udev, something I’ve experienced pain with before. One reboot is all it needed.

SIFE Consulting

Wednesday, March 7th, 2007

Tonight Anderson University SIFE Consulting held their group competition. My group was responsible for the creation of an ecommerce website for Rivers Resources, a local company that sells among other things ink and toner cartridges at rates below OEM.

I was the lead web developer for the project, and it went smoothly for the most part. The site has not been deployed yet as there is still a little work to be done before the site is ready for production, but the major pieces work. A little polish to the shopping cart and it’ll be ready.

We competed against four other groups. While we did not win, several of the judges told us that it was obvious we did the most work out of all of them, and the Rivers Resources CEO may be hiring several members of our group to expand the website to include some of their other products.

It was a fun project. I got to work with several good friends, and while I enjoyed the experience I am also glad to have one less responsibility.

Update: Our team manager just told us that we placed 2nd. Considering that the group that won used a box of candy as their handout to the judges, that’s not bad!

A lost art

Monday, February 26th, 2007

I’ve written before about how the academic world has frustrated me. The feeling is coming back, only this time related to my major, not the required liberal arts courses. And more related to the students than the professors.

I realize this is a dangerous thing to say, as many of my friends read this blog, but I feel like I have to say something.

My entire elementary and high school education was gained through homeschooling. The only other student I came into contact with on a daily basis was my brother. While this restricted my social development, I quickly learned how to teach myself. This resulted in a different frame of mind: education is about the student seeking knowledge. Hanging out online in various computer-related IRC channels further strengthened this notion, as geeks are reluctant to help someone with a problem unless they’ve demonstrated that they’ve tried to solve it on their own and failed.

At college I see the antithesis of this idea played out daily. Students ask for help with trivial homework, expect a direct “this-is-what-you-must-do” answer, and are frustrated when the professor responds with a question that (if the student took any time at all to think about) would solve their problem. I am sick of students who expect to be spoonfed answers. I am even more sick of professors who comply.

This is the machine of education. This is the machine that creates “computer scientists” who barely understand the concept of data type casting, who, if you asked them to modify a simple sorting algorithm to return elements in reverse order, would stare at you as if you had just asked them to change the laws of physics.

Computer science is not memorization of past solutions. It is a constantly changing field, and education is creating students that can barely grasp last year’s technology.

Computer science is a lost art.

It’s dead, Jim

Sunday, February 25th, 2007

My laptop hard drive finally died yesterday. Fortunately, this is the second time I have seen hard drive failure coming and made a full backup, and just in time. Like the last case (which was my desktop) after the backup finished, I could not boot the machine. Here’s to intuition. (And noticing a metal grinding noise doesn’t hurt either.)

Today I’ll head to Fry’s to get a new one, which hopefully will last a bit longer.

LMC Virtual Machine

Friday, February 23rd, 2007

At my school, we have been using Visible Virtual Machine in our Computer Architecture class. There is nothing more frustrating to me than having professors require that I use some Windows software for homework.

So I wrote my own version, which I have released under the GPL. It uses Gtk# for the user interface, but the virtual machine implementation is a separate class and could easily be used by a winforms interface.

Unlike VVM, I do not require any silly activation keys to fully utilize the software.

The sources can be checked out from my public Subversion repository: svn co https://layla.chrishowie.com/svn/LMC.

VirtualBox

Wednesday, February 7th, 2007

Okay, I lied. KQEMU is not the only open-source virtualization solution. VirtualBox is another, and is partially GPLed. Features that are attractive to corporate consumers (iSCSI and USB support, among others) are available only in their proprietary product, but the rest (including the required kernel module) are released on their public Subversion server under the GPL.

I compiled and messed with it last night. The performance is amazing. By amazing, I mean that it boots Windows XP faster than VMWare… and faster than it boots natively on my computer. There are “additions” that are comparable to VMWare Tools, such as a graphics driver and a mouse driver that enable tighter integration with the host interface.

It did crash several times last night while running Windows XP. Today I recompiled it after updating from Subversion and have not seen any crashes yet, so I’m not sure if whatever it was got fixed. There are still some bugs with snapshots that cause the VirtualBox server to crash, but so far they haven’t damaged any of my virtual machines.

After all considerations, I’m ready to ditch VMWare. Open-source virtualization is finally here, and it kicks butt.

KQEMU opened!

Tuesday, February 6th, 2007

The author of QEMU has finally released his previously closed KQEMU accelerator kernel module under the GPL! FOSS people should be very pleased by this; it’s the first fully open virtualization system that does not require a CPU providing VT extensions.

Laptop

Tuesday, January 16th, 2007

The laptop I purchased on eBay showed up a few days ago (thanks to a friend who was willing to drive it up from my house). It’s already got Debian Etch running smoothly, and of course XP in case I need it — you know how schools are with Windows. Fortunately I have not needed to boot Windows yet.

Development on the go… fantastic.

Stats:

  • Intel 2.8gHz CPU.
  • 512mb RAM.
  • 40gb hard disk.
  • 15″ TFT screen, max res. 1024×768.
  • Built-in WiFi (Broadcom 4306).

Linux “Jailer”

Sunday, December 31st, 2006

I’ve been pondering a project for about a year now, and I may be ready to finally start coding the beast. The basic idea is you run a process in a jail where it’s completely isolated from the system, except where you let it interact.

The interface is of course through syscalls like open() and connect(). The jail would let you set up a sort of ACL per-process of what syscalls it can make and which it can’t. Think ZoneAlarm, only we’re talking everything, not just network access. But that’s not the real kicker.

This all happens in userspace, and doesn’t require root access.

My idea is to code a preload library that captures all of the important system calls, like open(), connect(), bind(), etc. Some daemon will run on the user’s desktop, and every system call will be sent over a socket to that daemon. Upon receiving the call, the daemon will look in its access tables and send back a message to “proceed” or “fail with this errno.” The daemon may even ask the user in realtime if the call should succeed.

I started coding a Gtk# frontend but stopped after realizing that the network protocol for this baby is going to suck.

Even more challenging will be keeping the process completely jailed. All a process needs to do is unset LD_PRELOAD and spawn another copy of itself and it’s home free. So I’ll need to capture things like setenv() and look for other mechanisms for setting LD_PRELOAD for new processes and make sure that the library remains in that variable and in the front. In short, finding loopholes around it will be relatively simple. Some harmless program may even clobber LD_PRELOAD to perform some similar trick. So that will be another fun aspect of this project.

Perhaps more challenging would be allowing the daemon to alter the call arguments. While powerful, there is simply no good way to represent a void* over a socket.

But if it works… think about it. Your desktop environment could be started with this library preloaded, and then every process started from the desktop could be controlled.

The applications of this go far beyond security. You could deny your web browser access to your sound card to suppress those cute little songs and noises some sites like to play. You could deny all processes access to some directory unless you authenticate to the daemon. (Not exactly real security, but a fine deterrent against unskilled relatives.)

But we’ll see what happens…

Apple shy of Linux?

Saturday, October 28th, 2006

You’ve all seen the ads.

“Hi, I’m a Mac.” “And I’m a PC.”

The old-fashioned PC winds up crashing or freezing, leaving the hip, cool Mac standing there looking pleased with himself.

Terminology aside, (it’s “Windows PC” — there are lots of PC OSes) Apple is ignoring what is fast becoming a major competitor: Linux.

I haven’t seen an Apple ad that even goes so far as to mention Linux. Why? Because they can’t compete. Think I’m kidding? What are all the things Apple hypes?

OS X has a pretty slick user interface. Linux has a cooler one.

OS X is easy to use. So is GNOME.

OS X is stable and doesn’t get viruses. Neither does Linux.

Hardware just works on a Mac. A good share does on Linux too. GNOME even mounts removable media that I plug in, just like OS X does.

Oh, and Linux is free. Including all of the software the average desktop user needs.

And that’s why Apple ignores Linux. If they brought it up, people would get curious about it, look into it, then wonder why they forked over three grand to Apple when they could have installed Linux on the box that they already have. It’s the same reason why companies that demo their audio codec against competitors’ never include Ogg Vorbis: because it’s better than theirs, and it’s free to boot.