Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Comments

top

Linus Torvalds: "GCC 4.9.0 Seems To Be Terminally Broken"

TheRaven64 Re:Oe noes! A compiler bug! (704 comments)

The reason that most extensions exist is that there is (or was) no way of implementing things that people want with standard C. Inline assembly is one example. All modern C compilers support it, but GCC and Microsoft's compilers use different syntax (most other compilers implement one or the other, sometimes both). Without it, you require that every time you want to use even a single instruction of platform-specific assembly code, you must write an entire function and call it.

Atomics were another big reason for extensions. Prior to C11, if you wanted atomic operations, you needed either assembly or non-standard compiler intrinsics. Efficient vector support is another one.

2 days ago
top

Linus Torvalds: "GCC 4.9.0 Seems To Be Terminally Broken"

TheRaven64 Re:Or upgrade to llvm ... (704 comments)

While that's technically true, the Ada and Fortran front ends are both using DragonEgg, which is a GCC plugin that converts GIMPLE to LLVM IR. It doesn't work well with GCC 4.7 or newer, produces poor debug info, and is now largely unmaintained. There is a Flang project to produce an LLVM front end for Fortran, but it's very immature. The Ada Labs guys were looking at producing an LLVM front end for Ada, but I don't know that they got anywhere with it.

2 days ago
top

Linus Torvalds: "GCC 4.9.0 Seems To Be Terminally Broken"

TheRaven64 Re:Or upgrade to llvm ... (704 comments)

Clang wasn't. Clang began in 2007, after Chris Lattner had moved to Apple. Before then, if you wanted to compile C code with LLVM, you had to use llvm-gcc, which was a horrible hack that took a forked version of GCC and translated one of the GCC IRs into LLVM IR before code generation.

2 days ago
top

Popular Android Apps Full of Bugs: Researchers Blame Recycling of Code

TheRaven64 Re:Laziness (143 comments)

The problem is worse on Android than on many other platforms because there are very few native shared libraries exposed to developer and there is no sensible mechanism for updating them all. If there's a vulnerability in a library that a load of developers use, then you need 100% of those developers to update the library and ship new versions of their apps to be secure. For most other systems, core libraries are part of a system update and so can be fixed centrally.

2 days ago
top

Popular Android Apps Full of Bugs: Researchers Blame Recycling of Code

TheRaven64 Re:Not surprised (143 comments)

I doubt Apple has such a patent. Both of these were features of Symbian at least since EKA2 (over 10 years ago) and, I think, earlier. Apple may have a patent on some particular way of exposing this functionality to the UI, but that's about the most that they could have without it being shot down in court in 10 seconds (prior art that's in the form of a phone OS that millions of people owned is hard to refute).

2 days ago
top

Dropbox Head Responds To Snowden Claims About Privacy

TheRaven64 Re:umm duh? (176 comments)

Everything you ask for exists. The reason that Google, Microsoft, and Dropbox don't use them is that their entire business model depends on differentiation. If you could connect to their services with any third-party client that also worked with a server that you set up yourself and with their competitors' services, then their hold on the market becomes very tenuous. You're searching for technical solutions to business problems.

2 days ago
top

Nasty Business: How To Drain Competitors' Google AdWords Budgets

TheRaven64 Re:Advertised on YouTube? (95 comments)

The 'you can skip in 5 seconds' ads amaze me. Presumably the people using them know that they have 5 valuable seconds that everyone can see, yet they uniformly squander them. I've almost never seen an ad that tells me anything interesting in the first 5 seconds, which isn't that surprising, but it's really surprising to me that most don't even tell me what the product is. Several that I've seen use the first 4 seconds to fade from black, then get 1 second of something incomprehensible before I hit skip.

2 days ago
top

Dropbox Head Responds To Snowden Claims About Privacy

TheRaven64 Re:umm duh? (176 comments)

Please correct me if I'm wrong because I may not have imagined this system properly. I was thinking the idea was that you encrypt each file with a single unique key, and then to use a public-key encryption scheme to encrypt that key. You can then send the encrypted file and the encrypted key to another user, knowing that it will need that users private key to decrypt.

Every time you upload a file, you generate a random symmetric key. You encrypt the file with this key and the key with your public key. If you want to download the file, you get the file and the encrypted key and then you decrypt the key with your private key and then decrypt the file. When you create the account, you upload your public key.

When you want to share a file with everyone, with no access control, you download the encrypted key, decrypt it, and provide it to the server. The server can then decrypt the file.

When you want to share a file with a limited set of users, you download each of their public keys (which you can cache in the client) and the encrypted symmetric key, decrypt the key, and then encrypt it once for each user. They will then only be able to access it with their client.

I'm not sure who you're 'we' as in 'internet community' is. We do have standards and off-the-shelf libraries for everything required to implement this and others have done so in the past (one of my colleagues during her PhD did back around 2006, to give one example, others have implemented more complex and flexible schemes more recently). Note that this is the simple textbook scheme for doing this kind of system. It's been implemented before and doubtless will be again. If you check the research literature then you'll find more interesting schemes.

The only problem is if you want to be able to access it from the browser, without some kind of plugin (Google actually does compile OpenSSL with Emscripten to do ASN.1 parsing, but I wouldn't recommend using it for encryption).

2 days ago
top

Dropbox Head Responds To Snowden Claims About Privacy

TheRaven64 Re:umm duh? (176 comments)

then you may as well just give the server the AES key and ask it to decrypt the file

But in that model, if "the server" has the key, wouldn't Dropbox have the key? I thought that was the whole thing people were freaking out about.

No, you'd have the key. If you wanted to share the file publicly, then there's no point in keeping it encrypted, so you'd provide the server with the key and it would decrypt, saving you the cost of downloading and reencrypting.

I understand what you (and the AC) are saying about storing an encrypted key on the server, and then re-encrypting the key for each new user you'd want to share with. That's a clever arrangement and I admit that I hadn't thought of it, but it still seems like it has the potential to create more complexity than most people want to deal with. It still means you need to manage various encryption keys, and we (Internet culture) seem intent on not developing a coherent system for managing encryption keys.

The client just needs one key, the RSA (or equivalent) public key. You'd need to copy this between devices, but it's relatively small (under 1KB). It's small enough to fit in a version 40 QR code quite easily, so you could set up mobile devices by displaying the QR code on your laptop screen and point the mobile device's camera at it, if you don't have any sensible way of transferring files between devices. The client then has to download the file and the associated key, decrypt the key with the locally-stored key, and then decrypt the file, but that's not something that's exposed to the user.

3 days ago
top

Dropbox Head Responds To Snowden Claims About Privacy

TheRaven64 Re:umm duh? (176 comments)

The anonymous poster pointed out a simpler mechanism, which is used in practice on file stores that want to be encrypted on the server. This technique also has a number of advantages. Using a symmetric cypher is generally faster than an asymmetric one and using a different key for each file is just good practice anyway as it limits the damage that certain kinds of trojan can do. If you're sharing with everyone, then you may as well just give the server the AES key and ask it to decrypt the file. If you're sharing with just a few people, then sending them a (fixed-size) key for each file is not too much overhead.

4 days ago
top

Laser Eye Surgery, Revisited 10 Years Later

TheRaven64 Re:Astronomy, and general poor night-time results. (540 comments)

The thing that's really put me off the surgery is the improvement in contact lens technology over the last 10 years. My sight is sufficiently bad in one eye that I'd have to have an implanted contact lens, although the other could be fixed by burning the cornea. The contact lenses that I have now; however, are so thin that I don't notice that I'm wearing them most of the time and can be worn overnight. I put them in at the start of a month and then change them a month later. There's a slightly increased risk of eye infection, but they come with six monthly checkups to prevent this. I was wearing the previous generation of lenses (which were noticeably thicker) for about 10 years without serious issue, but with slight irritation around the eyelids caused by the thickness of the lens (and my eyes sometimes getting very dry, because it took a long time for the lens to dry out, so I'd forget to blink sometimes). With the newer ones, it's basically as if I had fully working eyes and if my prescription changes then I can put in different lenses next month.

4 days ago
top

Dropbox Head Responds To Snowden Claims About Privacy

TheRaven64 Re:umm duh? (176 comments)

There are techniques that allow searching within encrypted files, but they rely on the client creating the index. You can then search the index for an encrypted search term and, if you know the keys, interpret the answer. Getting this right is quite tricky (there are several research papers about it), so he's right, but it's not impossible.

The main reason that I suspect DropBox discourages encryption is that they rely a lot on deduplication to reduce their costs. If everyone encrypted their files, then even two identical files would have different representations server-side if owned by different users, so their costs would go up a lot.

5 days ago
top

'Just Let Me Code!'

TheRaven64 Re: Code the way you want... (368 comments)

Yes, almost certainly. The market for compiler engineers is very much a sellers' market at the moment. Universities neglected it for so long that most people graduate from undergraduate degrees with basically no knowledge of how a compiler works (if they're lucky, the know how compilers worked in the '80s), so there are 10 jobs for every person.

5 days ago
top

'Just Let Me Code!'

TheRaven64 Re:"Just let me build a bridge!" (368 comments)

In The Humane Interface, written in 2000, Jef Raskin made the same complaint. The time between turning a computer on and having written a program to add two numbers together on, say, a C64 or a BBC Model B, was about 30 seconds. On a modern computer of the time, you wouldn't even have finished booting - starting the IDE would take even longer. The problem is, this misses the point. There are lots of scripting languages with REPL environments, including a POSIX shell and PowerShell on Windows, that can do this as a single command once the computer is running (on OS X, you can add numbers in Spotlight, so it's even quicker - just hit command-space and type the sum). If you want to write a more complex application, it's vastly easier today. Extend that simple calculator to show an editable history and show equations, and you'll find it a bit easier today. Now extend it to be able to print - if you've ever written applications to print in the era before operating systems provided a printer abstraction then you'll know how painful that was.

5 days ago
top

'Just Let Me Code!'

TheRaven64 Re:Analogies are poor... (368 comments)

I don't understand why you think 'yum install gcc' is somehow different from 'download and run the installer for the VS command-line tools'. Especially on a modern Linux distro, where libraries come with -devel variants to save you the 10KB taken up by the headers in the normal install, so you end up having to install a load of headers as well to get the system useable.

5 days ago
top

'Just Let Me Code!'

TheRaven64 Re: Code the way you want... (368 comments)

I was a consultant for a few years and didn't find that it did. Most of my customers found me, as a result of my open source work (usually to work on the same projects, sometimes to work on projects in similar fields). Contract negotiation didn't take very long (they list some requirements, you mutually agree on a date, you pick a number, if they haggle then you politely decline).

5 days ago
top

UK Users Overwhelmingly Spurn Broadband Filters

TheRaven64 Re:Question: (115 comments)

Let me guess, they outsourced this particular code to EDS?

about a week ago
top

UK Users Overwhelmingly Spurn Broadband Filters

TheRaven64 Re:The British Way (115 comments)

That's as maybe but we have Healthcare that is FREE at the point of delivery.

That's not quite true for dental work, but the price is capped, so you'll typically pay £18.50 to see a dentist, £50.50 if you need something done, or £219 if you need something serious. It's only free if you qualify for extra assistance, which is automatic if you are under 18, under 19 (25 in Wales) and in full-time education, on income support or similar.

about a week ago

Submissions

top

Marvell Unveils 3-core ARM CPU

TheRaven64 TheRaven64 writes  |  more than 3 years ago

TheRaven64 (641858) writes "Ars Technica has some coverage of Marvell's new ARMADA 628 CPU. This system-on-chip includes two of Marvell's Sheeva ARM cores running at 1.5GHz and one at 628MHz, as well as an impressive GPU. Marvell bought Intel's ARM-compatible XScale line back in 2006 and has an ARM Architecture License (allowing them to make significant modifications to ARM's designs, as Qualcomm did with the Snapdragon) as a result of purchasing ASICA in 2003. This combination makes their ARM chips more interesting — if not always better — than chips like Apple's A4 or TI's OMAP series that use off-the-shelf ARM designs for the CPU core."
Link to Original Source
top

Regulator blocks BBC DRM plans

TheRaven64 TheRaven64 writes  |  more than 4 years ago

TheRaven64 (641858) writes "The BBC's plans to introduce DRM for over-the-air digital broadcasts were today dealt a setback when the regulator, Ofcom, asked them the same question that has been asked of many DRM systems; 'how does this benefit the consumer?' The letter to the BBC is quoted in the article as saying that "Ofcom received a large number of responses to this consultation, in particular from consumers and consumer groups, who raised a number of potentially significant consumer 'fair use' and competition issues that were not addressed in our original consultation." This does not end the chance of the BBC being allowed to introduce DRM in the future, but it at least delays their opportunity to do so."
Link to Original Source
top

TheRaven64 TheRaven64 writes  |  more than 7 years ago

TheRaven64 (641858) writes "David Chisnall has recently written two pieces describing the post-destop world. The first, on InformIT, discusses how Free Software can take advantage of the transition. In this piece, he claims that Microsoft has already won the desktop war, and it's a mistake for the Free Software community to keep fighting it. The second piece covers how Apple's iPhone and Apple TV fit in to the picture. The article asks:

Apple has lost the desktop war twice now; once with the Apple II and once with the Mac. The iPhone and Apple TV are the first salvos in the post-desktop war. Where exactly do they fit in?
"
top

TheRaven64 TheRaven64 writes  |  more than 7 years ago

TheRaven64 writes "The Register is reporting that IBM is planning on using AMD Opteron motherboards for the POWER 7 and Sun is considering following suit. This is not entirely surprising, since both IBM and Sun are members of the HyperTransport Consortium, the industry group the specifies the mechanism used for interfacing with AMD's recent CPUs. This could dramatically lower the barrier to entry for people wishing to build a RISC workstation, and make it as easy to migrate between CPU families as it was to move between x86 CPU suppliers back in the Socket 7 days.

It is worth noting that Intel is pursuing a similar strategy by themselves, with plans for the Xeon and Itanium to be socket-compatible."

Journals

top

Soylent News

TheRaven64 TheRaven64 writes  |  about 5 months ago

I've not been posting on Slashdot much this week, because I've been trying out Soylent News, which is using (and old version of) Slashcode (with some improvements) and lacks corporate overlords. It seems to have captured most of what I like about discussions in Slashdot, although is suffering slightly from not having nearly as many active users (50 or so comments is still the norm and it probably needs 100+ to be sustainable).
If you've not visited yet, I'd recommend giving it a go.

I'm TheRaven over there.

top

Getting a Job

TheRaven64 TheRaven64 writes  |  more than 2 years ago

Someone on Slashdot recently claimed I hadn't read Keep the Aspidistra Flying because I thought the ending was depressing. After I finished my PhD in 2007, I've managed to avoid the same fate and have successfully avoided having a real job for almost five years. I've done freelance programming and written four books, and had a lot of time to post on Slashdot (as you can tell from the fact that, so far, I've posted more than anyone else this quarter) and do open source stuff (Ohloh ranks me in the top 2,000 geeks with no life^W^W^W^Wopen source developers).

That's about to change though. I had two interesting job offers recently (I seem to get job offers from banks very often, but I have a very low tolerance for tedium, so I'd probably have been fired around day 3 if I'd taken any of them). One was from Google in Paris (yay!) but working on boring things (boo!). The other was from Cambridge University, which is about as well paid as you expect in academia (aww!) but basically involves working on the same stuff I do for fun (yay!) with some very intelligent people (yay!). Oh, and it's in a city where a quick search found four tango classes (yay!) and property prices not much lower than London (oops!) and which is both small and flat enough that I can cycle everywhere (yay!) and so does everyone else (look out!).

So, in a few weeks I'm moving to Cambridge. I'll miss looking out at the sea, but being able to dance tango more than once a week should be some compensation. There also seems to be a lively salsa scene, although having to learn yet another set of names for the same Rueda steps is going to be a little tiresome...

When I visited, I went for drinks with some of the makerspace guys the night before my interview (I have no idea how much I drank, but it didn't seem to affect my interview performance too badly...) and met someone who worked on the C++11 atomics spec (which I was in the middle of implementing at the time) and someone who had ported 2BSD to a 32-bit PIC with 128KB of RAM, so it definitely seems like a city with no shortage of geeks...

top

Wow, I Need to Get a Life

TheRaven64 TheRaven64 writes  |  more than 2 years ago

This weekend (I think, maybe earlier), Slashdot published some statistics about the most active people. Apparently I am in the top four most active commenters for the past month and the past quarter. This is quite depressing.

In happier, and unrelated news, my FreeBSD commit bit was approved this weekend, so I can now cause untold destruction on the Internet at large...

top

What Phone?

TheRaven64 TheRaven64 writes  |  more than 2 years ago

My current phone is a Nokia N80. I've had it a few years and I'm reasonably happy with it, but it has a fault with the charging circuit and it's pretty bulky, so I'm thinking about replacing it. Unfortunately, there seem to be about 3,000 different options with no competent way of way of working out which one is sensible.

I mainly use my phone as... a phone. So, the most important feature for me is the ability to make and receive calls. Because I am a cheapskate, this includes SIP (and WiFi), since my SIP provider charges a lot less than my mobile provider when calling landlines. I really like WebOS in terms of UI, but that seems to rule the Pre out because the only WebOS SIP client is alpha quality and doesn't integrate with the address book. This is something that Nokia does really well - the SIP client is fully integrated, so I can just select someone from my address book and select Internet Call to make the call. No extra skill required.

Beyond that, the only thing I really need is to be able to sync contacts via bluetooth and to use it as a modem via bluetooth - both pretty standard features, I'd assume, since my last three phones have had them.

In terms of smartphone features, I'm not that bothered. A programming environment that supports native code so that I can port my ObjC runtime would be nice - I have no interest in VM-based crap - but aside from that I don't have any strong requirements.

I would, however, like decent battery life and a small size, and ideally a nice camera. The bulk and poor battery life of my N80 means that I quite often leave it at home.

So, any suggestions?

top

Sale of Goods Act beats AppleCare

TheRaven64 TheRaven64 writes  |  more than 3 years ago

A little while ago, someone on Slashdot pointed me at the Sale of Goods Act in relation to purchased electronics. The act, for those unfamiliar with it, requires that goods be 'suitable for the purpose for which sold.' This is a fairly broad term, but it basically means that they must be able to do anything that the seller claims that they can do. Under this law, you have 6 years from the date of purchase to file a lawsuit if the item does not match the claims.

This was relevant to me because my MacBook Pro is now out of warranty and the battery is dying. Looking in the System Profiler, its full charge capacity was showing up as 1476mAh after 56 charges. When new, it was 5500mAh. These numbers don't mean anything by themselves, but Apple claims that their batteries retain 80% of their full charge capacity after 300 charge cycles. Claiming this means that a battery that does not retain 4400mAh after 300 charge cycles is not suitable for the purpose for which sold, and they are legally required to refund or replace it (irrespective of the time that has elapsed, although I can only sue them if they don't within 6 years of the time of sale).

I called their support line and was put through to an Indian woman, who explained that the warranty had expired. I quoted the relevant parts of law to her, and (after being kept on hold for a bit), was transferred to someone senior. He very quickly agreed to send out a replacement battery.

Interestingly, he did not ask that the original battery be sent out, nor that I provide a credit card number where I would be billed if the battery turned out not to be defective. I've had two batteries replaced in warranty, and this was standard procedure then, so apparently I get better service out of warranty. I don't have a great deal of use for a battery that only lasts about 35 minutes on a full charge, but I'll probably keep it as a spare.

As always, it pays to know the law. It's a shame that Apple, which claims to be a customer-focussed company, doesn't educate its support team about this though. Possibly the Indian call centre deals with people from everywhere English speaking, while the Irish one only deals with people in the UK and Ireland, so the people there are more familiar with British law, but if I had not quoted the relevant act then I would have been charged £99 for a battery, on top of the £1.50 it cost to call their support line for half an hour.

top

So, Farewell, MacMiniColo

TheRaven64 TheRaven64 writes  |  more than 4 years ago

Some time around 2005, Slashdot ran an article about a new hosting company, MacMiniColo that was taking advantage of the new machines that Apple had just released to offer cheap hosting. I got in contact with them, and a little while later, I had a Mac Mini, sitting in a rack somewhere, running OpenBSD and acting as my dedicated server. A 1.42GHz G4 CPU, 512MB of RAM, and an 80GB disk was (and still is) more than adequate for my needs. The biggest load on it is eJabberd, and even that only used under 1% of the CPU.

I had really great service from these people. The hard drive failed a little under a year after I bought the Mini, and Apple refused to honour the warranty because they couldn't find the records of the sale (then, a few weeks later, they could, but by then it was out of the warranty period). MacMiniColo replaced the disk for me at their own expense.

After five years with them, however, I had a little look around and noticed that VPS hosting has gone down in price a lot. I've written a book on Xen, so I thought I might try a Xen-based VPS now that FreeBSD has Xen support.

GigaTux only claims to offer Linux, but I dropped them an email and they were happy to install FreeBSD for me. I still haven't tried the Xen-enabled kernel yet; they installed the stock x86-64 kernel in an HVM domain for me and performance has been fantastic.

I'm sharing a server with 64 other guests and in spite of that performance tends to be better than my ageing Mac Mini. I was getting 1000IOPS while untaring the ports tree, which is far more than the Mini's old 2.5" laptop drive could handle, and is amazing considering that it's going via the slow, QEMU-derived, emulated device, rather than the fast PV driver. I've been installing software from ports, so everything is compiled on the machine, and even that has been fast.

And my Mini? They found someone else who wants it, and offered me about a third of what I paid for it originally - not bad depreciation after five years of constant use. Shipping it back to the UK would have cost almost as much as buying one on eBay, so I sold it on. Hopefully someone else will get some good use out of it.

As an aside, I've been really impressed by how well OpenBSD works on Mac/PowerPC hardware. If you've got an old Mac Mini lying around, chuck OpenBSD on it and you've got a reasonable low-volume server. The newer ones, of course, are x86 hardware, so will run just about anything.

top

Why I don't use GNU/Linux

TheRaven64 TheRaven64 writes  |  more than 4 years ago

There are two reasons why I don't use GNU/Linux: One is GNU, the other is Linux. Of these, the larger reason is GNU, and specifically the glibc part. The most recent reinforcement of this is Ulrich Drepper's inability to read the C specification.

For those not familiar with the C specification, all identifiers that start with an underscore are reserved for the implementation (see section 17.4.3.1.2). You should never use them in your own code, because your compiler is completely free to do whatever it wants with them. By convention, single underscores are used for global non-standard libc extensions and double underscores are used for compiler builtins.

You can find a number of these in existing compiler. Microsoft exposes SEH with keywords like __try. GCC provides __asm for inline assembly, ICC uses __cpuid for accessing the CPUID instruction, and so on. Clang added __block as a type specifier for their variables that are copied to the heap for use by blocks (closures).

Unfortunately, it turns out that the glibc headers use __block as a parameter name. There are several things wrong with this. One is that they use double underscores at all. By convention, these are reserved for the compiler, while single underscores are reserved for the libc. The second is that they used underscores at all in a parameter. Parameter names are not in the global scope, so they can be anything to prevent name clashes.

The result of this is that, if you use glibc, you can't also use blocks. This is a shame, because we (Etoile) were shipping a working blocks implementation six months before Apple. Well, working on *BSD and Solaris (and probably Windows, QNX and Symbian with PIPS, but not tested there). This problem means that it doesn't work on GNU/Linux.

No problem for me. I only use platforms with libc implementations written by people who can read specs. It may be a problem for some of you, if you use a broken platform with a libc maintained by someone who'd rather salvage his ego than fix a problem, and if it is then I'm sorry for you. My suggestion is that you remember that there are other options.

top

Well, that'll teach me to run betas...

TheRaven64 TheRaven64 writes  |  about 5 years ago

I saw recently that FreeBSD 8 was in BETA state. I ran 7-CURRENT for a while, because it had features I wanted to test (improvements to the OSS implementation mainly), so I thought I'd give it a try.

This time, rather than doing my usual source install, I tried a binary upgrade using freebsd-update. What a disaster. While the source upgrade procedure uses mergemaster to update configuration files, letting you just keep the new version of files you haven't modified, freebsd-update makes you merge them all by hand where there is a conflict. This wouldn't be a problem, except that all of the config files have a version line at the top, which conflicts between the two versions.

Inevitably, when manually handling the merge for a few dozen files, I missed an important bit so my first boot failed with an error complaining about the diff lines still being in the file. I fixed that, and rebooted.

My next boot failed because one of the startup scripts had replaced an if statement with a case. Unfortunately, this hadn't shown up as a conflict, so it had just taken the start of the case statement and the end of the if, giving nonsense. Fortunately, I was able to find the correct version in CVS and copy it out.

Next boot, my network interfaces weren't working. Actually, this was a problem I'd found earlier. When you update FreeBSD, you update the kernel, reboot, then update the userland (the new kernel is guaranteed to support the old userland, but the converse is not true). The em driver for Intel GigE cards complained that they both had invalid MAC addresses. Not a huge problem; it's a VM so I could just change the kind of virtual network card it was providing to the machine, but checking the bugs database I discovered that it's giving the same error for people with ThinkPads that actually do have this kind of hardware built in. Great.

Finally, my system decided to fail to boot with the error:

mounting /etc/fstab failed, startup aborted

Strange, I thought, I wonder which disk is failing to mount. A quick check in single-user mode showed that everything in fstab had mounted correctly. I eventually tracked this down to a bug in /etc/rc.d/mountcritlocal. This is not present in CVS, so it's probably introduced by the merge process. The value of $? (the exit value from the last command) is stored in $err, another command is run, and then there is supposed to be a switch statement branching on $err, which instead is branching on $?.

I've run betas, release candidates, and even the development branch of FreeBSD before, but 8-BETA2 is the first time I've ever had a FreeBSD install that feels like a beta. The merging done by freebsd-update seems completely broken; it prompted me for things it could have trivially done automatically, but failed to prompt me when it broke random system files. My system is now working again, but it's irritating to have to spend this much effort on an update.

top

Transcending the Frontier

TheRaven64 TheRaven64 writes  |  about 5 years ago

Does anyone remember Frontier, a space trading game from the '90s? No, not that one, but a much lesser-known top-down game that only ran on Windows NT. It was released back in '95 and I found it a couple of years later when I was running NT 4 on my PC.

The game was incredibly addictive, but it was unfinished. The version I had was 0.5, and Altavista (this was a few years before Google) was unable to find a newer version. The gameplay owed a lot to games like Nethack. You started off in one solar system and then got to the next through a jump gate (analogous to descending to the next dungeon level). Over time, you'd upgrade your ship, with better shields and weapons, and progress further. Being a 0.5 release, there were a few things missing. The lack of sound was a shame, but the real killer was that there was no save system. You could play for an hour, then get hit by a stray nuclear warhead and have to start from the beginning. A game with so much potential, but it never went anywhere...

...or so I though. Over the weekend, some random googling turned up the author's web site and it turns out that he has recycled a lot of the ideas into a brand new game: Transcendence. This has a improved graphics, sound, and working savegames (nicely integrated into the game so they aren't a crutch). The story line is much expanded on Frontier (which was basically 'you are in space. Have fun') and the universe is much richer. Things I liked in the original, like the randomly-generated solar systems, the black market and the different possible gameplay styles are all still there, but now there is a rich backdrop and the player can choose to help the military, fight pirates, provide comet-grown food for expensive restaurants, or any combination.

There's one down side: It's still Windows-only, and I don't have a Windows machine anymore. Fortunately, it runs very well in WINE. I've playing it on the Mac in the free version of CrossOver Games that was released last year.

Oh, and if anyone's interested, you can still download Frontier 0.5. It does have one advantage over the newer game; the AI didn't have any sensible friendly-fire logic, so you could easily destroy (and loot) friendly space stations by getting one of the ships defending it to fire while docked. This was easy to do: just get the pirates to chase you there and when their stray shots hit the station all of the docked ships will launch firing. This works really well for the black market outpost, which is protected by very powerful ships and is full of fun technology to steal.

top

A Simple Solution to Spam

TheRaven64 TheRaven64 writes  |  more than 5 years ago

I noticed a while ago that my spam filter was 100% accurate on all plain-text emails. Spammers are now forced to use obfuscation techniques like embedded images and HTML. It seems to me that this provides an easy way of totally eliminating spam:

  1. Bounce anything that is not from a whitelisted sender and contains an non-plain-text MIME section.
  2. Auto-whitelist anyone I send a mail to.

This means that anyone I email is free to send me whatever they want. Anyone can still contact me, but they are restricted to sending me plain text for the first email, until I reply to them.

Of course, spammers could start sending out messages saying 'I tried to send you some spam but your filter blocked it, please email me.' These will be caught in grey-traps for 8 hours, and by the end of the 8 hours there's a very good chance that the email will have been caught and the sender added to an RBL.

I'll probably try implementing this when I have time, but if anyone has time before me then please do and let me know how well it works.

top

Back to Freelancing

TheRaven64 TheRaven64 writes  |  more than 5 years ago

My current contract at the university expires a week on Monday. It's been fun. I've been employed to set up a History of Computing Collection - a chance to indulge one of my hobbies for a bit after finishing my PhD and relaxing after the immense stress of writing a book and a thesis (in more or less unrelated areas) at the same time.

Now I'm back to freelance writing and spare-time hacking. If anyone wants to employ me for a bit, let me know...

top

Another day, another dead hard drive

TheRaven64 TheRaven64 writes  |  about 6 years ago

A couple of weeks ago, one of the hard drives in a FreeBSD box of mine died. This was mildly inconvenient, but since it was one of a RAID-1 array, not totally catastrophic. It seems to be the season for drives dying, because the disk in my MacBook Pro just died this evening.

The machine had been being a bit slow and randomly pausing for a while for no apparent reason. I now realise that the random pauses were caused by I/O errors causing userspace processes to block waiting for kernel locks to be released. Ho hum.

Over the last month, I've been becoming progressively more concerned about how long it had been since my last backup (October 2007!) and last weekend I finally got around to running a full backup of my home directory. As such, I haven't lost very much. Most of the work I did in the last week is in svn and the grant proposal I've been working on was rescued just before the drive died completely. I lost a paper I was working on and some emails and chat logs, but nothing particularly important.

I think my next laptop is going to be solid state. Mechanical storage is more trouble than it's worth.

top

LGPL Pain

TheRaven64 TheRaven64 writes  |  more than 6 years ago

I'm not a huge fan of the GPL. While I agree with the FSF on most things, I can't help feeling that the GPL shows a certain lack of faith in the whole idea - if the open source development model is so much more efficient, and Free Software is so much more valuable, then why do they need such a mass of legalese to protect them?

From a more pragmatic standpoint, the GPL is about the most incompatible Free Software license around. If you write GPL code, you can't use it in a BSD, Apache, X11, MIT, or Mozilla licensed project.

I was fairly happy with the LGPL until recently, however. It is a bit more restrictive than I'd have liked, but as long as you dynamically link to it it doesn't taint your own code. This is a story about the pain caused when lawyers get in the way of writing code.

It turns out that the LGPL, as it stood, wasn't restrictive enough for the FSF's ideology. You can't have freedom without a lot of restrictions (apparently) and so they added a load more to the venerable LGPL 2.1, and created the new, improved, twice as restrictive, LGPL 3.0, and encouraged all GNU projects to upgrade.

One such project, which I'm directly involved with, GNUstep, did so. Then we started having problems. It turns out there's this other license that has a clause stating that it may not be used with any conditions that are not in the license itself. This is the (GNU) GPL. Version 2 of the GNU GPL is incompatible with version 3 of the GNU LGPL, and since it's viral you can't even link code under the two licenses.

That's okay though, right? The FSF has been telling everyone that they should use the 'or later versions' clause when they use the GPL, just in case they want to make it more restrictive in the future. And everyone's done that, right? Well, it turns out, xpdf didn't. And the xpdf code was extracted to form the Poppler library. And the Poppler library, in turn, was wrapped in PopplerKit, an Objective-C framework for rendering PDFs. And so, by the transitive property, all of these GNUstep apps were GPL 2. Which is incompatible with LGPL 3. Which meant that suddenly they couldn't use the latest GNUstep. By the way, PopplerKit isn't the only GPL2-only library used by GNUstep apps.

This is a bit of a problem. So big, in fact, that Debian decided not to carry the latest GNUstep, because it would have meant dropping a load of GNUstep applications from the next release. The eventual outcome? GNUstep has reverted to LGPL2.

This isn't an unusual situation, by the way. A number of big libraries, such as GNU libc (an abomination that needs to die, but for technical, not legal reasons) is having the same problem - the FSF wants to 'upgrade' it to LGPL version 3, but that will mean any Linux distro that ships the new glibc will not be able to ship any GPL 2 apps.

And people wonder why I prefer the BSD license family.

top

I Hate Mobile Providers

TheRaven64 TheRaven64 writes  |  more than 6 years ago

It's that time of year again, where I realise I'm paying more than I need to for my phone and think about switching providers. Currently I'm paying abut £14 a month, for 100 minutes of calls and 40MB of data. I rarely make more than 60 minutes of calls in a month (I hate telephones), but I'd like more data so I can use my 770 as intended.

For the last four years, I have been looking for a service like this, where it provides calls but is mainly focussed on data. I am looking (somewhat half-heatedly, I admit) for jobs and the moment and so I don't know how long I will be staying in the UK for, making any contract with a minimum period unacceptable. This shouldn't be a problem, since I already own a phone so no network needs to make and recoup any investment (and yet most of them still require a minimum period of a year for a contract, and Three don't even offer SIM-only contracts).

Does anyone know of a UK operator which doesn't suck, and does provide intermittent data use for a reasonable rate? I am starting to think I should invest in WiMAX companies; at this rate they're going to make a killing when they start deploying over here...

top

A Leopard ate my ~

TheRaven64 TheRaven64 writes  |  more than 6 years ago

There is no way I could feel more disdain for Apple's QA department than I do right now. It seems that, in spite of the fact Leopard was in development for over two years, no one bothered to test what happened when you updated an account using FileVault from Tiger. My experience was:

  1. The installer worked fine.
  2. I logged in, and used the OS for a day.
  3. The kernel paniced.
  4. On rebooting, my home directory was inaccessible, and Disk Utility was unable to repair the disk image.

Oh well, I thought. It's an occupational hazard when using an encrypted disk image for your home directory; if you don't get a clean shutdown then you can lose data. So, mindful of this, I restored from a recent backup and rebooted. Sure enough, there I was logged in again. Then, a few weeks later, I upgraded to 10.5.1, shut down cleanly, rebooted, and... couldn't log in. Apparently the disk image was corrupted. Worse, it turns out this is a known fault: Leopard always leaves FileVault home directories created with Tiger in an unmountable state when you log out.

I'm going to say that again:

Leopard always leaves FileVault home directories created with Tiger in an unmountable state when you log out.

What kind of monumentally incompetent design is this? I have no idea. Anyway, enough of the ranting. I'm sure what people really want to know is 'what do I do when my shiny new OS has just eaten 30GB of personal data.' Step one is to swear at Apple. A lot. Step two is to realise that this 'corrupt' disk image, with a 'bad superblock' actually mounts fine in Tiger still. Fortunately, I haven't 'up'graded my Powerbook to Leopard. I booted the MBP in target mode, mounted it on the PowerBook, mounted the disk image and copied all of the files out.

I now had /Users/theraven/theraven.sparseimage containing the disk image that Leopard was too inept to use and /Users/tr containing my files. After swapping these over, I rebooted. Could I log in? No. Now it didn't think that the disk image was corrupt, it just couldn't find it. A problem.

This lead to the question of how to tell OS X that I was no longer using FileVault. Apparently this isn't documented anywhere I could find via Google and so I had to spend a long time hunting through the filesystem. Thanks again Apple.

It turns out that the relevant file is /var/db/dslocal/nodes/Default/users/theraven.plist (where theraven is my username). To edit this, you have to log in as root. I did this by booting to single user mode (hold command-s on boot). Inside this file, you will find a key-value pair where the key is home_loc and the value is an array. If you delete this key, then it will fall back to using the home directory as a directory, rather than a mount point. You can then reboot (or just exit from single user mode) and log in. You can probably then reenable file vault and have it re-encrypt your data, but I think I want some confirmation from Apple that they are only mostly incompetent, rather than completely inept before doing this.

Once upon a time, Apple was known for attention to detail and thorough testing. I suppose their current activities are good news for Étoilé, but I'd rather we competed by raising our standards than by Apple lowering theirs.

top

Improve your posts and end world hunger

TheRaven64 TheRaven64 writes  |  more than 6 years ago Someone just sent me the best link I've seen in a long time: http://freerice.com/index.php.

It's a simple vocabulary game which asks you to pick the closest synonym for a word from four options. It shows you adverts, and for every word you get right they donate 10 grains of rice to the UN World Food Program. It adjusts the difficulty based on how many you've got right so far, up to a maximum of 50. I seem to be hovering around he 40±2 mark at the moment.

EDIT: I got to 47 for a bit, but then dropped down again. Still haven't made it to 48, which they claim few people beat.

top

Decrypting the OpenBSD Theme Song

TheRaven64 TheRaven64 writes  |  more than 6 years ago OpenBSD has just released the theme song for the 4.2 release. The song title is 100001 1010101. What does that mean?

Converting them to decimal, we get:

100001 = 32 + 1 = 33
1010101 = 64 + 16 + 4 + 1 = 85

As ASCII codes, these are ! and U. Not particularly meaningful, but it gives us a hint. Considering the song's subject some connection to money could be a good guess. Considering OpenBSD's focus on cryptography, it seems like it might be encrypted in some way, but presumably some way that's known to be insecure enough that someone with only two characters and a knowledge of the context can decrypt it. A Caesar Cypher is an obvious bet. Since it's in binary, a power of two seems like a nice bet for an easy-to-guess key. We want one that leaves both characters in the letters region of the character set (65-90, 97-122). Picking 32, we get:

1000001 = 64 + 1 = 65
1110101 = 64 + 32 + 16 + 4 + 1 = 117

This corresponds to the letters A and u. Since Au is the chemical element for gold, this is probably the answer.

Of course, with only a two-letter cyphertext and no knowledge of the algorithm or key, we can't be sure, and the 'real' decryption could be anything, but it seems likely that the correct answer is gold considering the subject of the song. Assuming it is a Caesar Cypher, we know that the distance between the two characters must be 52, so we can write a simple program that will output them all:

#include <stdio.h>

int main(void)
{
for(int i=0 ; i<128 ; i++)
{
printf("%d: %c%c\n", i - 33, (char)i, (char)(i + 52) & 127);
}
return 0;
}

The only results where both are in the letter range are:

32: Au
33: Bv
34: Cw
35: Dx
36: Ey
37: Fz

Of these, only Au is an atomic symbol. The others might have some other meaning, but Au still seems like the best bet. No other powers of two give us a value in the letter range, although 16 gives 1e, which might mean something to someone (decimal 30? ASCII code for record separator?).

In summary, the title for the new OpenBSD theme song could be anything, but is probably Gold. Also, I am definitely a geek.

top

Squash Ball: 1, Eye: 0

TheRaven64 TheRaven64 writes  |  more than 6 years ago

I recently started playing squash. It's quite fun, you put two people in a small room and they try to hit a small ball past each other. It turns out, this ball is almost exactly the same size as an eyeball. It also turns out to be somewhat more resilient than an eyeball. When I played last Thursday, the ball left my opponent's racket and went straight into my right eye.

This, perhaps unsurprisingly, way quite astonishingly painful. After about five minutes, my vision started to go cloudy, so I went to the hospital. One of the nice things about Swansea is that there is a hospital right next to the sports centre, which specialises in eyes. After waiting for a little while, someone shined a bright light in my eyes, poked them a bit, and gave me some drops to take. Apparently my iris was bleeding (hence the cloudy vision). I had to use two kinds of eye drops and go back the next day. By this time, it was hoped, the cloudiness would have cleared enough for the doctor to see into my eye and see if my retina had detached.

The next day, the cloudiness hadn't cleared much, but the doctor couldn't see any damage (but I have to go back after another three weeks to make absolutely sure).

Today, for the first time since the accident, I can see clearly. Unfortunately, the pupil on my right eye is still very dilated (I think this is the eye drops, but I'm not completely sure), and so I am having to wear sunglasses and sit in a dark room to avoid being dazzled. The good news is that the week-long moratorium on exercise is lifted tomorrow, so I can go to salsa in the evening.

top

Intel Adds Vertex Shader Hardware Support

TheRaven64 TheRaven64 writes  |  more than 6 years ago According to El Reg, Intel have added hardware vertex shader support to a number of their GPUs. Those affected by the driver update include the Q963, G965, 945G and the mobile GM965. Previously these parts only supported pixel shaders in hardware, and used a (slow) pure-software implementation for vertex shading. The hardware contains a mixture of fixed-function and programmable hardware; this driver update will use the programmable hardware to run vertex shaders.

The new drivers are Windows-only, but the existence of this functionality provides some hope that their Free Software drivers will also gain vertex shader support at some point.

top

Is 3D Hardware still Hard?

TheRaven64 TheRaven64 writes  |  about 7 years ago First generation video cards were basically a blob of memory and a DAC. Then came simple 3D cards that were basically rasterisers. Then the cards started doing transform, clipping, and lighting calculation all in hardware. Then manufacturers started moving away from the whole fixed-function concept. Modern graphics cards are basically floating point vector stream processors.

While the Open Graphics Project is aiming to build a fairly simple fixed-function device, I wonder if this is the best approach. It seems that it would be simpler to start with something like the OpenRISC core and:

  1. Remove the integer units (not needed).
  2. Increase the floating point pipeline width to 128 or 256 bits, giving 4-way SIMD on every operation.
  3. Add hardware support for trig operations.
  4. Stamp a few dozen of these cores onto a die.
  5. Do everything else in software.

You'd get a chip that is heavily optimised for doing graphical operations, but still a general purpose design, a lot like modern GPUs. The other benefit is that there are a lot more open source developers capable of writing software OpenGL implementations for this kind of device than there are able to make meaningful contributions to GPU design.

For bonus points, you could add a few stock OpenRISC cores, a memory controller, USB controller, etc to the design, and have a completely open source system-on-a-chip design.

Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...