Why C++ is not my favourite language (by )

Yesterday, I had a discussion with somebody who's a big fan of C++. He spoke of C++ as letting you write high-level code (with smart pointers, exceptions, destructors and templates conspiring to smartly remove lots of the normal drudgework of C programming), while still being able to perform low-level memory access like C if you want to, and getting highly optimal code. He admits that C++ is complex and takes a lot of time to master, but that you can produce highly elegant and compact code once you've mastered it.

But I think this is broken.

Read more »

n2n revisited (by )

I have spoken before about n2n, the peer-to-peer VPN tool that makes it easy to create efficient virtual networks.

Normal VPN products are really more of a "virtual private cable" than a "virtual private network" - they just establish a point-to-point link over the Internet, requiring a login to set it up and encrypting the traffic. This means you can have a virtual connection to a real private network somewhere; and if a few people connect into that network via VPN links, then there really is a virtual private network between you all, but all going through a central point where all your links meet.

While with n2n, everyone connects to a shared "supernode" that keeps a list of who is connected to the VPN, and from where; then when you want to connect to somebody else, you use the list from the supernode to establish a direct encrypted connection between yourself and them, rather than going through any central point. So it's an actual virtual network out of the box. You can even have more than one supernode running, so that any one can fail; all the supernode does is to provide the directory service.

Also, you don't need to maintain a database of user logins; a supernode can carry any number of virtual networks. When you connect to the supernode, you just tell it the name of the community you want to join, and it will share your connection details with anybody else in the same community - you can make communities up on the fly rather than needing to maintain a central list. Access control is handled by the simple fact that you need to know the correct encryption key for the community you want to join, or your messages will be received garbled by everyone else, and ignored.

Anyway, for a long time, I wanted to get into n2n, but I couldn't as it didn't compile out of the box on NetBSD; but a desire for a better VPN solution at work has led to me getting it working. It wasn't that much work, in the end, as the existing FreeBSD support already had a BSD approach to things.

n2n is distributed via Subversion, so they don't have version tarballs - this is a problem for my NetBSD port. So I decided to mirror it into git with git svn, then forked it as "Kitten n2n", made my NetBSD port, tagged a release, pushed it to github, uploaded a tarball from that tag, and then made a NetBSD package of net/kitten-n2n.

I'll tinker with it for a few more days, then I'll submit it to the NetBSD folks for consideration.

I'll keep pulling in from the official n2n Subversion repo, to pull down patches, and I'll see if they'd like my patches pushed up - as well as NetBSD support, there's a few things I'd like to fix as well (I've spotted passing an integer through a void* by casting, which is slightly dodgy practice and produces warnings on my 64-bit machine, but is easily fixed by passing a pointer to a heap-allocated copy of the integer!)

Designing a global knowledge base (by )

Continuing from my previous posts on HYDROGEN and IRON, I suppose the next thing I can talk about is CARBON.

One thing that users expect out of a system is some form of navigational structure. All but the simplest embedded computer systems have some kind of menu structure; while workstations often have several somewhat confusingly overlaid structures (menus in applications, a "My Documents" hierarchy full of personal stuff, a "Start Menu" or "Applications Folder" full of system-wide resources, and a "My Computer" hierarchy with things like removable drives and their contents, printers, access to the internals of the system, mounted network drives, and the like; then, via a Web browser, a hierarchy of bookmarks and then whatever navigational structures different Web sites out in the world present to you.

So, I clearly needed some concept of "large-scale organisation of resources" in ARGON. After much deliberation, I came up with CARBON. But, as usual, I like to kill several birds with one stone.

Read more »

Generic Functions (by )

When most people think of object-oriented programming, they think of the interpretation of it that originated in Simula, that has since bubbled into Java, C++, and so on. Or maybe the prototype-based variant found in Self or JavaScript.

Read more »

1000th Blog Post!!! (by )

Yes that's right this is our 1000th blog post on this blog!

Imagine streamers and balloons and glasses of fizzy stuff and cake!

To the first 10 people to comment on the this post there will be a 1000th blog post limited edition Wiggly Pet! The only condition is that you actually have to come and visit us to pick the Wiggly Pet up though there is no time limit on this 😉

The Wiggly Pet will of course be glittery!

(@ndy you still need to claim the Wiggly Pet you won from me ages ago over Percival the mouse)

The blog is of course 5 years old as well so there will be a further 5 purple and blue sparkly Wiggly Pets with 5yrs of Snell-Pym on them 🙂 (tacky I know but hey its me!)

We origonally started this blog up as a notice board to say how the wedding went as we got frustrated having to keep typing the same stuff over and over again in emails then Al made it so it was easy for me to add photos and from here my blog empire has arisen! 🙂

I hope we are still an interesting read - it was actually a bit of a shock to us when we found that lots of random people read the blog but they do and it has provided useful information for them and sometimes they give us useful information about a problem or crisis we are having which is all good.

I at least am now addicted to blogging so will no doubt continue to bore you all with family events and Jean cuteness and musings and ramblings on philosophy, society, science and art, and I'm pretty sure Alaric will continue with all his technical posts.

I have the other blogs out of nessecity as I found I was creating too much content which could be split into various catagories plus I love setting up blogs and making/fiddling with themes making each blog look like its subject matter 🙂

As a chronic diary writer (thanks to Aunty Lizzy and a Christmas presant when I was like 12!) blogs are the perfect medium for me to whitter in and as for Al it is an over spill of his note books - somewhere he can share his ideas and the like 🙂

We hope to continue boring you for the fore seeable future.

WordPress Themes

Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales
Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales