Yesterday was the first day of this year's Linux conference organised by the UKUUG, and the first that I've attended. This one's in Leeds, just across the University campus from me, so I thought I really ought to show up.
There was actually a day 0 before this, with an SELinux tutorial, but I didn't go to that.
I managed to get to four lectures:
PDF — Editing the uneditable
Paul Sladen gave an interesting overview of how the PDF format actually works. I was surprised to learn that it's not really a binary format, it's just text similar to PostScript, but often with compression that makes it apparently unintelligible. A few things I learnt:
- The underlying format is made up of graphics commands of the same
sort as PostScript's, but with shorter names to make it more efficient.
It's actually simpler, because there aren't any programming features
like the
forloops that PostScript provides. - A PDF file is structured as several ‘nodes’, that describe the structure of the document, and can refer to each other. I'm not sure exactly how that's used though.
- To make it easy to seek to the relevant node (to find page 23 quickly, or whatever) there's a set of references to them at the end of the file, giving byte offsets of where they can be found. The structure of those records is a bit crazy, and of course it's not something that can be easily put together by hand. So if you want to write a PDF file by hand, you'll need a script to add this stuff.
- Apart from the basic (14?) PostScript fonts, which you can use simply by naming them, any other fonts a document uses have to be included in the file, or at least their metrics do. Having tried to print PostScript containing Japanese characters I'm sure this is the right way of doing things.
- It's possible to mark up the text in a PDF file, tagging paragraphs and headings, so that users can copy and paste bits from it nicely. Paul didn't go in to how that works though.
Interesting stuff! I think I'll have to play with creating PDFs at some point. I've had lots of fun with PostScript in the past :-)
High-performance 3D Graphics: How Linux will overtake Windows
John Masters of Silicon Graphics, Inc talked about ‘data visualisation’, by which he meant using 3D graphics to visualise huge amounts of data. SGI are trying to come up with ways of managing the graphics pipeline so that it can handle gigabytes or terabytes of data. He didn't go into much in the way of specifics, but gave some nice examples of things they'd done, like constructing a model of an Egyptian mummy based on lots of data from cat-scans.
(abstract)
Porting Linux onto a Digital Camera
Shigeki Ouchi of Software R&D Group, RICOH Company Ltd. talked about their project to port Linux onto a fairly sophisticated Ricoh digital camera. It's still got a few rough edges, but it does work, and they've got MicroWindows running on it. The idea is that they'll have a programmable camera, which might allow for some interesting applications, although for now it's just a research project to see if anything interesting comes out of it.
Ouchi-san gave a demo where he had the camera send it's images over the network (it has a PCMCIA slot, so you can put an ethernet card in) to Microsoft NetMeeting running on his laptop. He was logged in with a serial console, which gets you a root prompt. Nice.
(abstract)
Eddy-current Detection with Linux: Finding nails in your Walls and Cracks in your Aircraft
Alex Perry of Quantum Magnetics talked about a research project of his to build a good and cheap eddy-current detection system using Linux with a sound-card as the sensor interface. The idea is to have the sound card generate a sine-wave (or whatever) and feed that into some coils, which you hold against an aircraft or whatever. You can measure whether there's any metal under the coils, or whether there's a fracture in the metal, by comparing the signals that come back from the coil into the microphone socket.
Apparently bog standard sound cards have a lot of potential to get very accurate readings. You have to try out lots of different sound cards to find a good one (it has to big full-duplex, 16 bits both ways, and have low noise) but it works really well when compared with the expensive hardware that's normally used for this sort of thing. And because all the signal generation and processing is done by some software (called CanDetect) it's possible to do a lot more interesting things with generating different wave forms or applying different filtering techniques.
(abstract)
Afterwards
I missed Smylers' talk about Vim unfortunately. It had to be
moved to a later slot because of projector problems, although various
people in the audience tried valiantly to work out ways using screen
and the like to broadcast what was happening on the laptop at the
front of the theatre.
Then for beer at the Vic, food at Maxi's, and beer at Whitelocks, and I got home completely knackered, which is why I'm writing this the next day :-)
Now I have to get myself sorted to get to Aaron's fonts talk.