Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
User Journal

Journal Journal: Just testing out some journal submission changes 8

I don't actually have anything to say. Kathleen is due any day, and I'm looking forward to a few weeks of staying home, getting poor sleep, and changing diapers.
But mostly I'm testing to see if journal saving works properly.

User Journal

Journal Journal: Updates to Journal System 13

We've made some significant updates to the submission/journal system. Visiting Submissions and Journals yields a new form that allows stuff like tags to the data types. There are a number of annoying bugs, but for the most part the dust is starting to settle. More notes will be coming, but this journal entry is really just me putting the final test on the new Journal form.

Operating Systems

Journal Journal: Well, that'll teach me to run betas... 2

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.

PC Games (Games)

Journal Journal: Transcending the Frontier 1

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.

User Journal

Journal Journal: Minor and Major updates 8

Pudge made a cool change in discussions- if you link to a comment deep inside a thread and click 'More' the sytem is much more intelligent about crawling down and retrieving children, and then parents and grandparents and so forth up the ancestry. So odds are you'll get more related comments sooner.

We now abbreviate journals in the firehose... so they are more like slashdot stories with a Read More link to the full text.

The big user facing change this week was structural: historically we had 2 different "skeletons" on Slashdot, but with this refresh we unified to a single one. This change simplifies maintenance for us quite a bit (maintaining the idle section and the firehose views of the same data was a royal pain).

You also will see some changes to the firehose.pl layout. We're playing with the tab layout a bit, moving some menus around and better integrating the core functions into the site chrome. It's a bit buggy atm, so feel free to email me if you see something wonky. We're extinguishing a few minor brush fires but there's no forest fires that we're aware of.

User Journal

Journal Journal: The Wind

Zach knows the wind now. I saw him look at the window and see the leaves rustle. He then started making blowing noises. We blow the mobile over his crib whenever we change his diaper, so he knows the blowing noises move objects. But he's translated that to leaves hundreds of feet away through a window. Now I'm not saying he's a genius, but he's pretty awesome.
Spam

Journal Journal: A Simple Solution to Spam

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.

User Journal

Journal Journal: Beta Metamod Updates 28

This won't significantly affect most of you, but we have been working on some meta mod changes. The most user visible change is that the UI we used to use was thrown out, and instead we are using one based on the firehose. Subscribers will see it when they go to the old metamod link although users can see it by going to this version of those hose

The first real change is that we've changed the meanings of the UI around. The old system is 'Fair' and 'Unfair' and the new system is '+' and '-'. The meanings are subtly different. You are no longer rating individual 'Insightful' or 'Troll' or whatever... you are now stating basically "Is this comment good or bad for you". Personally, since I find very few Score:5 funny comments to be actually really funny (and not just cliche memes) I '-' most of them. You are encouraged to be harsh if you don't actually think something is insightful or funny, call it such. The system encourages more of what you + and less of what you -.

You are also welcome now to do more than 10 m2 per day... however we internally have diminishing returns after 10, so you can do more, but they start to matter less and less.

There will undoubtedly be bugs so feel free to email me or vroom at slashdot if you find them. Probably next week or so we'll move this out to everyone, so your assistance is appreciated.

User Journal

Journal Journal: Back to Freelancing

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...

User Journal

Journal Journal: Another day, another dead hard drive

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.

The Internet

Journal Journal: D2 Remembers What You've Read 5

Well, for subscribers only this week at least. We have a half dozen minor bugs left in the TODO list, but if you are a paying subscriber you can test it out. It works best if you are using the keybindings to navigate. Pressing 'f' takes you to the next unread comment respecting thread order... so you can press that over and over again.

We also added a thing to 'collapse comments after reading' which I think I might turn of as a default setting soon. This is only usable for subscribers atm as well. But basically, as you navigate through a discussion, it collapses the comments you've read after you move on. This makes it really easy to navigate large discussions without having to scroll over 150 comments you've already read.

we're aware of a number of annoying bugs, but hopefully most of them will be squashed by Pudge for this weeks code refresh. If things are stable, we hope to roll this out for everyone rsn.

also my baby cut his first tooth yesterday. My furniture will never be ungnawed upon again.

GNU is Not Unix

Journal Journal: LGPL Pain 2

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.

User Journal

Journal Journal: Flat Mode Discussions 13

So as we've been migrating the system from the tired old D1 to the exciting and awesome new D2 a number of complaints have come up. I'm going to talk about a couple of them here because I'm really looking for feedback on THESE issues. Please only talk about these points or I will mod you offtopic or troll or something.

The issue is about the use of Flat/Threaded/Nested modes. D2 cleanly replaces both threaded and nested modes- you effectively get nested mode by bringing the 2 sliders together. And threaded mode is vastly more flexible because you can choose the level at which comments are abbreviated or displayed in full text. So users of those modes should be set (obviously there are other reasons not to use D2, I'm just talking about the layouts here tho)

What's left is flat mode, which has a number of sort options. Now flat mode is used by roughly 4% of our active population. When i think about flat mode, I think about 2 reasons you would have to use it:

  1. I hate indenting and whitespace. I want a big vertical column now this isn't my bag, but I can understand it and even consider supporting it in D2. I think you sacrifice legibility, but this is a personal preference. It also would be easy to support in D2. Hell, you could probably do it in a greasemonkey script no problem.
  2. It's easier to remember your place in flat mode This to me is the only reason to use flat mode- you can reload your page an hour later, find the last comment you read, and pick up where you left off.

Now I Would think that the only reason to use flat mode is #2... except that only a couple hundred Slashdot readers have the 'ignore threads' sort order enabled. So either they don't understand what they are doing, or #1 above is the real reason that they use flat mode.

So in a nutshell, the question I am asking in this journal is 'Why do you use flatmode?' Is it cosmetic? To more easily keep your place in a discussion? Something I'm just missing? We have plans to implement a read/unread state retention for discussions, so maybe would you migrate to a threaded view if that function exists? Or is it purely aesthetic... an irrational hatred of scrollbars and whitespace? :)

The reason this matters is that simply formatting the page flatly is easy. Probably a simple greasemonkey hack or maybe a few lines of CSS. But re-implementing the alternate sort is gonna take some work. And I'm ok with that... except that the logs say that nobody actually USES that sort... they ONLY are using flat mode for the cosmetic reasons.

Speak out! Stay on-topic or you WILL be moderated down.

User Journal

Journal Journal: D2 Updates 70

In-Place Posting is now live for all logged in users. Hopefully there are no surprises. We've found a number of very tiny bugs, but nothing show stopping. We'll leave the link up to the 'classic' reply form for a few weeks. Next week anonymous coward will get the new posting form... hopefully there are no surprises with that.

A few new keybindings aren't documented yet... v (end) t (top) [] change upper threshold and ,. change bottom threshold. Also 'r' opens the new reply box, m opens the mod total thingee.

The only major complaint so far is that the design changes consume a lot more whitespace. I have mixed feelings on the subject, but am aiming to strike a balance. We noticed 2 very clear places where the whitespace is excessive and hopefully that will be fixed RSN. But on the other hand, making deep threads visually clear, and drawing some attention to the 'reply' buttons is beneficial to everyone, so bare with us as we work to strike some sort of balance.

User Journal

Journal Journal: Discussion2 In-Place Posting Testing 16

Discussion2 rolls on... the most recent addition to the system is in-place comment posting. Essentially, little dynamic ajaxy slideout boxes to post directly within the thread, without going to a stand-alone page. This is great because you don't have to lose your place within the thread to post.

this functionality is currently only available to paid subscribers, and several hundred of them have tested it out already. We still need to make it look pretty and add a few minor things (like the CAPTCHA for anonymous posting) but it's almost done.

Also worth noting is that logged in users can click on the 'Score' field of comments to view the moderation information on the comment. This information was previously not visible within D2, unless you navigated outside the d2 system (opening a comment in a new window did it). I doubt most people really care about this info, but it's available.

We also have one (perhaps minor) thing to get in... right now if you visit a comment directly via a CID link you can navigate within that thread, but navigating 'up' the comment hierarchy results in a new page, and a new discussion... this makes context a pain to maintain. So pudge is going to change that page to display the parent posts in an abbreviated format. This will mean that you can climb back up the thread easily, even if you entered the forum via a link deep into a thread.

A few minor items left on the todo list (keybindings for threshold changes... maybe press 'r' to open the reply slideout from the current comment, and a bunch of small design issues to make the threads a little more visually clear and easily navigatable) and we're ready to call D2 finished.

We have no plans to remove D1, so those of you who hate D2 are welcome to stay on the old system, but obviously new moderation tools and whatever else we think of will be attached to D2, not D1, so you've been warned ;)

Slashdot Top Deals

There are two ways to write error-free programs; only the third one works.

Working...