random technical thoughts from the Nominet technical team

Easy Prism

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Posted by jay on Mar 17th, 2008

Prism is a simple new application from the Mozilla group.  Basically you use Prism to create an application icon for a single web site.  For example, for accessing this blog, I used Prism to create an icon on my desktop that points to the blog URL.   The configuration was without the navigation bar, toolbar or any other ephemera normally found in a browser.  The end result is a single screen with just the web site I want in it.  It looks so much like a desktop application it is uncanny, but underneath Prism is just a lightweight browser instance for a single web site.

Of course a bookmark can get me there pretty quickly as well, but I tend to have at least three Firefox windows open, each with several tabs and it takes a few moments of thought to remember where a particular tab is.  With Prism, for the sites I visit regularly, I have them as icons on my OSX dock.  Yes, there are versions for Linux and Windows as well.

The only problem I’ve found so far is that it does not accept self-signed X.509 certs, but then it is still in beta.  The only thing I don’t like is that it doesn’t automatically grab the favicon for the application icon.

There is even a plugin for Firefox 3 betas that allows you to create a Prism app directly from Firefox.  I haven’t tried that yet though.

RIPE Test Traffic Working Group

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Posted by ian on Mar 17th, 2008

I have recently become a co-chair of the RIPE Test Traffic Working Group. RIPE NCC operates a network of test traffic measurement devices, and the working group exists to both report on and direct that project. There is also scope within the group to discuss other performance measuring techniques or products.

The working group does most of its work by email but meets twice a year in dedicated sessions at the RIPE Meetings. The next RIPE Meeting will be held from 5-9 May 2008 in Berlin. If you have a talk you would like to give to the working group at this session please send an email to me at Ian.Meikle AT nominet.org.uk.

Missing DNS Glue Records

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 3.33 out of 5)
Loading ... Loading ...
Posted by patrick on Mar 14th, 2008

Nominet host the authoritative Domain Name System (DNS) name servers for the .uk top-level domain. Put simply, a typical entry in our DNS consists of a domain name together with the addresses of any nameservers which are authoritative for that domain. However if one of the nameservers is actually contained within the domain it is authoritative for, then our DNS holds a glue record for that nameserver, which contains its IP address. Domain name registrars are continually sending us updates to the .uk DNS, registering new domains and amending the nameservers for existing domains.

Recently we discovered that for many months there has been an error in our software which updates the .uk DNS. In a rare set of circumstances we would not add a glue record to the DNS, even though it was required and had been provided by the registrar. This was brought to our attention by one registrar and corrected quickly.

I subsequently analysed our database to find how many DNS updates had been affected by this problem, so that I could then correct the DNS by applying the missing glue records. I found, out of the millions of DNS updates we had received between June 2007 and February 2008 (the duration of the problem), 120 had been affected by this problem.

In most cases these updates had been corrected by the registrars themselves within a couple of hours of the problem occurring, by sending in further updates, either containing the same nameserver details again, including the glue record details, or more often, containing different nameservers outside of the particular domain, and thus not requiring glue.

I actually only needed to apply the missing glue records to 17 domains, most of which had at least one nameserver outside the domain, and so had probably not noticed the missing glue record.

I found the reaction of most domain name registrars affected by this problem interesting. When they saw that the glue record had not made it into our DNS, rather than raise the problem with us they moved their domain to a nameserver not requiring glue. As soon as a registrar raised the problem with us we resolved it.

installing 32-bit libs on 64-bit Ubuntu

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Posted by andyh on Mar 14th, 2008

I’ve been running 64-bit Ubuntu now for years and have occasionally had problems when I wanted to install a 32-bit application. I could use the –forceall option to dpkg to force the installation, but there were often missing 32-bit library files. The install of notes 8 client was a good example of this. There is now a solution thanks to a post on ubuntuforums. There’s a getlibs package that will do exactly what you need it to do - install the 32-bit libs without installing anything else. I came across this when installing skype at home and I must say it should make like much easier when installing the new lotus notes 8.0.1 client that I see is now available!

compiling ruby with ssl support

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Posted by andyh on Mar 14th, 2008

I’ve been making packages for Solaris i386 architecture recently and have been compiling ruby as it’s required by puppet - our excellent configuration management software.

I had no trouble compiling it and making a Solaris package but when I came to use it to install puppet I ran into this

-bash-3.00$ ruby install.rb DESTDIR=${DESTDIR}
Could not load openssl; cannot install

It seems that ruby hadn’t included the openssl files into it’s build.

I found a post that said that openssl wasn’t included in ubuntu by default and it could be installed manually, so I tried it and found out that it could not find a header file:

-bash-3.00$ cd ruby-1.8.6-p114/ext/openssl/
-bash-3.00$ ruby extconf.rb
=== OpenSSL for Ruby configurator ===
=== Checking for system dependent stuff... ===
checking for t_open() in -lnsl... yes
checking for socket() in -lsocket... yes
checking for assert.h... yes
=== Checking for required stuff... ===
checking for openssl/ssl.h... no
=== Checking for required stuff failed. ===
Makefile wasn't created. Fix the errors above.

A quick modify of the CFLAGS variable to add “-I” and a re-run of configure/make and ruby had openssl support built in.

Quarantined downloads and extended attributes under Mac OS X

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Posted by chris on Mar 13th, 2008

If you’ve got Leopard, you may have noticed that it tags files that you download and then warns you that you are opening a downloaded file. This annoys some people, but I think it is quite a nice touch for the average user. As a power user, you might want to remove this tag from the file manually (read: using the command line). To do this you need to use the xattr command as explained nicely by Henrik. It seems like the tag is stored in special extended attributes on the file which show up in detail if you issue the ls command with the -@ flag. To remove them you just do

xattr -d com.apple.quarantine <downloaded_file>

Strangely this command has no man page, but will give usage if you pass it a -h flag.

Ubuntu xorg.conf for Parallels

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 1 out of 5)
Loading ... Loading ...
Posted by jason on Mar 13th, 2008

I’ve recently been running, on my Mac Pro, parallels desktop 3.0 with Ubuntu 7.10 as the guest operating system. The installation of Ubuntu on parallels is covered very nicely by Shane Duffy I, perhaps a little naively, attempted to change the graphics driver that was being used to attempt to utilise, the nvidia graphics card that is in the Mac Pro and ended up with a busted xorg.conf and an unusable ubuntu install.

To get the nvidia driver installed, I ended up using envy, as the download from nvidia itself failed to detect the hardware. After downloading a whole host of additional packages, this still failed to produce a working xorg.conf. I struggled for several days editing the xorg.conf, top tip always backup your xorg.conf in triplicate before making any changes to it. Through the System->Administration->Screens & Graphics gui, I attempted to select my graphics driver & monitor, again with no useful results except an incorrectly displaying ubuntu installation.

It was only on installing a new parallels vm, that I was able to find a working xorg.conf and then edit my original vm’s xorg.conf properly. So here a few top tips for having an ubuntu xorg.conf running under parallels:

    The graphics card has to be prlvideo
    Plug ‘n’ Play monitor will do
    You need the magic LVDSBiosNativeMode option

In fact I ran into another unusual error, when I attempted to reconfigure my xserver-xorg:

sudo dpkg-reconfigure xserver-xorg

FATAL: Error inserting battery
 (/lib/modules/2.6.22-14-generic/kernel/drivers/acpi/battery.ko) : No such device

So to save other parallels users some the pain that I went through, I present the most pertinent entries in my now working xorg.conf:

# Parallels video driver
Section "Device"
        Identifier      "Parallels Video"
        Driver  "prlvideo"
        BusID   "PCI:0:2:0"
EndSection

Section "Device"
        Option "LVDSBiosNativeMode" "false"
        Identifier      "Generic Video Card"
        Driver          "vesa"
        BusID           "PCI:0:2:0"
EndSection

#Parallels monitor
Section "Monitor"
        Identifier      "Parallels Monitor"
        VendorName      "Parallels Inc."
EndSection

Section "Monitor"
        Identifier      "Generic Monitor"
        Option          "DPMS"
        HorizSync       30-70
        VertRefresh     50-160
EndSection

#Parallels screen
Section "Screen"
        Identifier      "Parallels Screen"
        Device  "Parallels Video"
        Monitor "Parallels Monitor"
        Option  "NoMTRR"
        DefaultDepth    24

        SubSection      "Display"
                Depth   24
                Modes   "1024x900"
        EndSubSection
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Device          "Generic Video Card"
        Monitor         "Generic Monitor"
        DefaultDepth    24
EndSection

# Server layout
Section "ServerLayout"
        Identifier      "Default Layout"
        Screen  "Parallels Screen"
        InputDevice     "Parallels Mouse"       "CorePointer"
#       Screen          "Default Screen"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
EndSection

I think it is issues like having to hack your xorg.conf that will prevent Linux from marching onto the enterprise desktop and indeed, your typical home user. Most users just don’t want this sort of pain.

First impressions of Erlang

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Posted by alexd on Mar 7th, 2008

I’ve been spending some time learning Erlang recently. It’s a language which has interested me for some time now, so I’m happy to be getting the chance to evaluate it for a new project. I like the fact that it’s been designed for concurrent distributed systems, and shares a common ancestor with occam (a language I enjoyed coding in the past). These languages eliminate many of the problems of concurrent programs by having no shared state (although Erlang comes with mnesia, a distributed database). Instead, many otherwise completely independent processes communicate entirely by sending messages to each other (which accumulate in a process ‘inbox’). These processes may then be supervised by other processes on other machines, resulting in a highly concurrent fault-tolerant system. Sounds great!

On the down side, first forays into Erlang do reveal its long history. The origin in the 1980s is obvious, and the poor and sparse documentation and support is probably the result of a proprietary commercial system going open source. Symbian OS also suffered from poor documentation when it was first opened up to a wider community - this got much better with time, so hopefully Erlang will be easier to get to grips with in the future.

The debugging could certainly be easier - maybe I’ll work out the meaning of the arcane error reports one day…

« Prev

Recent Posts

Highest Rated

Categories

Archives

Meta: