Older blog entries for mascot (starting at number 48)

On Thursday, I finished my exams (all but one went OK), and yesterday I finished school. It feels really weird - I've been at that school for the past nine years, and I've grown to quite like the place. Having spent an appreciable fraction of my life there, it was sort of like a second home. Over the past two years, the A-level Further Maths set (of which I was a member) grew a really strong sense of community - and now I might not see some of them ever again. The past year in particular has been the peak of my time there.

But I suppose good things can't last forever, and there's a time when we all have to move on. I've applied to study Computer Science at Trinity Hall, Cambridge, and I'm fairly confident I'll make the grades. One other friend from Further Maths has applied to the same college, for Engineering - his offer is a little more steep than mine, but I hope he manages it.

And now for the summer. I'm hoping to get a job at my Dad's work (a supermarket chain) in the IT department. I've worked at that company before, for Work Experience, but they could only fit me into the Accounts dept. I hope I can get a better job than folding letters and sorting invoices into order this time...

But for now... free coding time! At last I can get back to something other than revision for exams. I've collected a huge To Do list over the past few months (mostly for my friend's hosting business) and hopefully I'll be able to have a stab at it over the long summer.

I've just seen Matrix Reloaded (thanks Andrew [aes]!) - a great film. But of course Trinity's hack using NMAP & SSH particularly appeals :-)

I'm glad to see that at least one director has a clue in these matters...

Oh dear, SCO really have gone totally mad. But it's still quite worrying when things like this crop up.

Eclipse

Entirely failed to see the Total Lunar Eclipse despite getting up at 04:30 to see it. Damn fog... :-P

11 May 2003 (updated 11 May 2003 at 23:18 UTC) »

Coding

Surely someone else will have written an open-source document management system with a tree heirarchy... but I can't find one. So I wrote one. I'm glad I did, actually, because I enjoyed it and I quite like the result (and hopefully others will too!). Nice and simple, but I used the opportunity to teach myself about mod_rewrite (so that a url of http://.../doc56 will really fetch http://.../main.php?id=26), how to design a site with no tables and lots of CSS, and also about cache controls (to make the site nice and speedy by caching the bits that won't change often, even though PHP doesn't usually do that).

I also made use of Mozilla's prefetching features. These are quite amazing, and really can make the site lightning-fast. Whilst you're reading a page, Mozilla will be fetching related pages (i.e. those on the same level in the heirarchy, or the level below). The pages are all tiny, but having them already in cache does still give a noticable improvement - it cuts the page load time from a couple of seconds down to almost zero.

Real life

Ooh, scary. Only two-and-a-half more days of school ever. (Not counting the exams...)

Some truly amazing ideas have arisen on what we can do to our favourite Scottish maths teacher, but due to reasons of secrecy, these cannot yet be revealed :-)

mathieu: In answer to your question about FTP over routers which perform NAT. Firstly, as you're probably aware, there are two modes of FTP - Active and Passive. Passive FTP works over almost all routers, whereas active FTP rarely works over NAT unless the router is clever enough to know how to specifically interpret FTP traffic. Most FTP done via web browsers and the like is passive, since it works in more scenarios, but on Linux the command-line ftp client defaults to active FTP.

Passive FTP is easy. All connections are made from the client to the server, so the router can just route these as with any other connection (like HTTP and the rest).

Active FTP, however, requires the server to open a connection to the client. In the case of a router that does NAT, the router must know which machine on the local network to send this incoming connection to. In the case of a Linux router, that's the job of the FTP Conntrack module (I think), which basically keeps track of the FTP connection. If your router supports Active FTP, it probably has a similar piece of software running.

I hope this answers your question. And I hope someone will in turn correct any mistakes in my answer :-)

Holidays

I've been in Scotland for the past two weeks, interspersing homework with mountaineering and photography. The weather was exceptional - unbelievable in fact: for the entire first week, we had hot sunshine and a cloudless sky. Anyone who's been to Scotland will know that this is highly unusual :-) I only got rained on once the whole time, and that was on the last afternoon. We did have an impressive thunderstorm directly overhead on one evening though - the strikes were so close that the electric field made my Dad's hair stand on end.

Computer stuff

I came home to a broken power supply in one of our home PCs. (No, it wasn't a power spike! It had been left unplugged. I'll just put it down to lack of attention :-) That machine is usually left on, so perhaps it was just some sort of momentum that kept it going...) Rooting around for spares, the only one I could find was in the back of my cupboard, labelled (by myself) as "Broken; buzzes". Well, it seems to work :-) and the buzzing is barely audible. I'll keep an eye on it though...

Linux Kernel Software Watchdog (and the daemon, watchdog-5.2)

I came across this for the first time today, and realised immediately how useful it could be on the webserver I manage for my friend. This server has bouts of instability, which I'm still trying to pin down, but my friend is trying to run a hosting business and doesn't appreciate long downtimes when it crashes and I'm not around to fix it. It seems that once I install the software watchdog, the downtime should be limited to only a couple of minutes in the event of a crash.

(Yes, I know this is fixing the symptoms rather than the cause. I'm still trying to find out which of the kernel patches I've applied is causing the crashes.)

I wonder if there are any other obscure goodies in the Linux kernel which I haven't come across yet? I'd certainly never heard of this before I came upon it by accident. Is this just me living in a cave, or are features like this rather under-advertised?

Happy birthday to me :-)

I'm 18 at last. And the first birthday card I got was from my local Member of Parliament, which (translated from politician-speak) basically said "Congratulations, you now have the right to vote, now make sure you vote for me." :-)

robocoder: no, really, Mozilla 1.4a was released yesterday. It's April 2nd today, so you're allowed to believe me :-)

I agree wholeheartedly, though, that the April Foolery goes too far. Slashdot was plain stupid yesterday, with the same fake article repeated five times. And the Gentoo Weekly Newsletter informed me that the Gentoo project was abandoning Portage in favour of RPM. I genuinely didn't know whether to believe this.

31 Mar 2003 (updated 31 Mar 2003 at 23:27 UTC) »

D'oh!

I'm so gullible. I just ran this Bash code, as found in someone's sig on Slashdot, just to see what it did:

:(){ :|:&};:

Anyone have any idea what it does? I just know it hogged my system and ground away at the hard disk, before I hit the Reset bitton :-) Shame I can't search for it; none of the search engines count it as a valid query.

Update

To answer my own question: I've now been informed about what I just inflicted upon my machine. It makes perfect sense if you realise that ':' isn't a special character - in this case, it's a function name. Imagine it replaced by 'foo'.

Very neat.

39 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!