photo
Jordan Sissel
geek

Thu, 30 Jun 2005

xmlpresenter updates

Some fairly significant updates to xml presenter today.

There is now a "table of contents"-style list pane on the left of the browser window. It initially shows up as a very thin grey bar labeled 'Slides' which you can drag outward to reveal the slide list. The position of the slide list is kept in a cookie so it will be in the same place if you hit reload.It officially works 100% with Mozilla and Konqueror, and works almost entirely in Opera 8 (one minor feature fails). It's pretty broken in IE 6, but I'll work on fixing that (sigh). It probably doesn't work in Safari, but since Safari is based on KHTML it should work well. I had a friend test it in Safari and it was broken, so eh.

Project: xmlpresenter
Working Demo (requires xslt): xmlpresenter/example.xpl
Working Demo (plain html/javascript): xmlpresenter/demo
MPICH Presentation for work (xslt): school/mpi/index.xpl
MPICH Presentation for work (iplain html): school/mpi/index.html

Comments: 0 (view comments)

Permalink: /geekery/178
posted at: 00:40

Wed, 29 Jun 2005

XML Presenter, or how I hate PowerPoint.

Long-story-short: I wanted a web-based presentation system that was easy and fast. It took me a few hours to get it finished, but it's definatley at a 1.0 stage now. I'm going to add a few more cool features as time progresses, but don't hold your breath.

The project page has enough of a description of the project that I won't bother discussing it here. Clicky!

Link: XML Presenter

Comments: 0 (view comments)
Tags: , ,
Permalink: /geekery/177
posted at: 01:31

Wed, 22 Jun 2005

Search engine referrer urls and your website.

Lots of websites are similar to mine: A front page containing recent entries. i've noticed that quite a few search engine requests actually direct people to the main page long after the content has disappared into the archive. Personally, when I go searching on the net for "things" and I find some guy's blog whose entry of interest to me has been gone to his archive for months, I get mad.

So what can we do? Surely there are plenty of solutions, right? I mean, with wonderful things like RDF there's got to be a way to tell search engines where the data is going to be living on a permanent basis? If not, there's still a few things left we can do. Firstly, I think it is crucial that websites provide a means of which to search their content. Secondly, and sometimes this bothers me, somtimes I like it, some websites will take the referrer url into account and use that in helping display the webpage. This is most often seen by websites highlighting search terms that it sees from your google referrer url.

While this is helpful, it's not always useful. Blogware ought to recognize that the front page is dynamic and be able to understand search engine referrers. Using this knowledge it should display (in some meaningful and useful way) a localized search result to the user. This means if I search for "ppp over ssh" and google points me to http://www.csh.rit.edu/~psionic/, my front page needs to realize that my post about 'ppp over ssh' probably isn't there anymore, and it should ideally point me at the pppp over ssh article.

Certain features such as text highlighting are quite useful, but giving the user a way to turn them off to ease readability is necessary, in my mind. There are other features I imagine could be incorporated here, aswell, but I haven't actually put much thought into it right now, perhaps later ;)

A website's goal is to convey information. If this information cannot be found quickly and easily, users will go elsewhere. For this reason, I believe it is crucial for website maintainers to periodically look at things like webserver logs for search engine referrers. If google is sending your users to the wrong page you have two options: Make the correct page more visible (difficult with current search engine algorithms which aren't very intelligent), or make your website smarter.

Comments: 0 (view comments)
Tags:
Permalink: /site/176
posted at: 01:48

Tue, 14 Jun 2005

Adventures in Kernel-land

Having found myself with a lack of energy for working on my current projects, I decided to start a new one. This one aims to be a flexible input-device framework for FreeBSD.

I know next to nothing about the kernel and it's implementation, but fiddling around so far I've done somewhat well-ish. The first thing I'm going to do is make a new psm driver that can be loaded as a kernel module instead of having to be built into the kernel. My first target is going to be a driver that supports generic PS/2 mouse devices.

Once that's working, I'm hoping I'll be well versed enough in kernel development to actually start working on a framework for input devices (keyboards, joysticks, and mice). I'd prefer that things like special mouse drivers for things like Synaptics touchpads are off in their own little sub drivers. I also want sysctl tunables for options that are reasonable to have changed.

Right now, I'm not sure how I'm going to implement this framework, becuase I simply don't know enough about the kernel to know how to do it properly. More on this as things develop. This should be a fun project for me seeing as how I've never really dealt with hardware before, nor have I ever written anything on the kernel level.

Comments: 0 (view comments)
Tags: ,
Permalink: /geekery/175
posted at: 01:45

Mon, 06 Jun 2005

qemu, an open source emulator

I'm always skeptical of open source software doing it's job correctly, and but sometimes I'm surprised by them. I recently installed a platform emulator called qemu. It can emulate x86, SPARC, PPC, and a few others supposedly. I recently installed windows using it, and it runs surprisingly well. It's fast enough to let me play starcraft, for instance ;)

I've previously used vmware 3 in freebsd with much success but not after lots of irritating kludges to get it to work properly. Qemu was a joy to get working, just two commands and you can be off and running.

nightfall$ qemu-img create windaz 5G
nightfall$ qemu -cdrom /dev/acd0t0 -boot d windaz
'-boot d' tells it to boot off the D: drive, which is the cdrom. I was now ready to install windows to my 5 gig "drive"

For the x86 platform, it has a kernel module for linux and freebsd you can use to accelerate emulation by getting rid of a few layers of translation (Why translate for x86 when you're ON x86?). FreeBSD's port of it allowed me to build the kqemu kernel module, and off I went installing Windows XP. The install went flawlessly - and it blew my mind that everything worked out of the box. By default, it uses it's own "user net" internal nat/firewall nonsense that I didn't bother futzing with. It can use Linux's tun or FreeBSD's tap interfaces to get a real ip assuming you setup bridging and whatnot properly.

To get TAP running for qemu under freebsd, you're going to have to have tap in your kernel, or kldload if_tap. Once done, you'll probably want to setup bridging or setup local nat and dhcp. At any rate, I used bridging. You'll need BRIDGE in your kernel or kldload bridge. To turn bridging on use

# sysctl net.link.ether.bridge.enable=1
# sysctl net.link.ether.bridge.config=em0,tap0
If you get an error with either of those commands, you don't have bridge loaded or in the kernel. Anyway, em0 and tap0 are the two interfaces you are bridging. em0 is my wired interface to the world.

You definately don't want to put your new install of windows on the net before getting SP2 and some antivirus software, so don't use the tap stuff until after that. If you don't specify the -n option to qemu, it will use user-net (assuming you haven't created a /etc/qemu-ifup script).

Comments: 0 (view comments)
Tags:
Permalink: /geekery/174
posted at: 02:31

Sat, 04 Jun 2005

soekris shenanigans

Nothing quite like killing free time with more projects! I've finally managed to get this net4501 thing working again. My plan of attack this time was to use an nfs root instead of mfs root - this means I was able to build a larger system and netboot off of that rather than having to tweak a bootable image every time I wanted to make a system change. Once the system was bootable I used /stand/sysinstall to partition it and install a bootloader, then quit out. I have a script that puts pretty much all the binaries and libraries I'll need onto the main drive, but it was missing a few crucial libraries and such.

A brief list of some of the things I forgot: /usr/lib/pam_*, login(1), /libexec/ld-elf.so.1, and a few other things. After a few hours of tweaking with crap, I've got it booting off of the cf drive instead of network. Using my laptop to make packages care of FreeBSD's ports, i've got isc-dhcpd and bind9 installed. I haven't spent the time getting a ddns+dhcp configuration yet, but dhcp works. Turning ip forwarding on aswell as adding a nat rule to pf.conf and poof I have a working firewall/router.

With an excessive number of userland tools (things that make using the shell possible), the drive has 18 megs of data on it. Some libraries/binaries are not stripped, some of them, like tcsh, aren't even going to be needed when the final product is done.

A few considerations need to be made for running things on this hardware. The drive is Compact Flash which has a limited number of writes. There are a few places I needed to look at for drive writing issues: /tmp, /var, and access time changes. The latter is the easiest, simply mount / with noatime. I couldn't have /tmp being mounted from the disk, because the random access that goes on there would shorten the lifetime of the CF card. So I used mdconfig to create an 8 meg ramdisk (mdconfig -a -t malloc -s 8m) and mounted that as /tmp. As for /var, the only program I knew that wrote, often, to places in /var was syslogd, so I turned that off for the time being.

So far so good, more updates on this later as I work on it further.

Comments: 0 (view comments)
Tags:
Permalink: /geekery/173
posted at: 04:42

Search this site

Navigation

Metadata

Home About Resume My Code (SVN)

Articles

ARP Security Dynamic DNS with DHCP OpenLDAP+Kerberos+SASL PPP over SSH SSH Security: /bin/false Week of Unix Tools Work Efficiency

Projects

fex firefox tabsearch firefox urledit grok keynav liboverride newpsm (FreeBSD) nis2ldap pam_captcha poor man's backup Solaris audio utility xboxproxy xdotool xmlpresenter xpathtool misc scripts

Presentations

Yahoo! Hack Day '06 Unix Essentials Vi/Vim Essentials

Tag Cloud

Calendar

< June 2005 >
SuMoTuWeThFrSa
    1 2 3 4
5 6 7 8 91011
12131415161718
19202122232425
2627282930  

Friends

BarCamp Kent Brewster Tantek Çelik John Resig Wesley Shields Tyler Shields

Technorati