Lazy Reading for 2013/12/29

Last of the year!  You’ll want to take some reading/watching time this week.

Can you be arrested for what’s on your computer?  Yes, of course.

Making SSH connections easier.  If you don’t know it, you should.

Ansible vs. Salt and Creating a new Ansible node.  BSD-focused.

Vim in the hands of a Real Maniac.  Damian Conway, the speaker, is a man of complicated skill, and a good speaker.  It gets pretty crazy by the end.  (via)

The Saddest Moment, James Mickens talking about Byzantine fault tolerance.  (via)

The via link on that last one led me to Dadhacker, with some excellent entries like this Eject button at Apple or Fuctuation.

Digital restoration and typesetter forensics.  Brian Kernighan, Ken Thompson, and Joe Condon reverse-engineering hardware because the vendor won’t reveal how it works – in the 1970s.  The letter to the vendor is hilarious.  The story of how it was recovered, also linked there, is a good read, too.  (also via)

Over-Extended Metaphor for the Day.  Could quibble, won’t.  I like the Emo Phillips followup joke quoted here, where I found it.  There’s some neat old things there – and they’re selling/buying!  (via)

Console Living Room; more old game systems resurrected via JSMESS.  First reaction was that it was neat, second reaction: these old games were horrible, compared to what we have now.  (via multiple places)

exabgp, human-readable BGP messages.  (also also via)

The Grand C++ Error Explosion Competition.  I had a student who excelled at this, involuntarily.  (via)

We’ve run out of closed-source things to re-implement as open source, and now we’re reinventing the open-source wheel.

How open source changed Google – and how Google changed open source.  Their open source group is essentially about license compliance, not evangelism.  That is the way it should be.  The last paragraph about Summer of Code is spot-on.  (via)

Readers of a certain age will recognize the global vector map theme.  (Here’s more.)  It makes me think of the old Apple ][ game, NORAD.  (incidentally, I was way better at it than the player in that video.)

Your unrelated comics link of the week: not a comic, but a magazine that includes comics: Mineshaft.  I’ve heard about it many times, and I keep meaning to get a subscription.

In Other BSDs for 2013/12/28

Again, quiet from the holiday break.

My DragonFly 3.6 upgrade adventure

Here’s how my upgrade from DragonFly 3.4 to 3.6 for this server went.

The system install went normally.  I rebooted before performing ‘make upgrade’, as noted in UPGRADING and elsewhere.

I already have dports installed, so a binary upgrade should be possible.  I had heard of people with older version of pkg, having trouble getting it to notice upgrades.  I rebuilt pkg, and ran ‘pkg upgrade’.  A number of the updates coredumped.  Here’s one example:

[156/160] Upgrading gtk2 from 2.24.19 to 2.24.19_2...Segmentation fault 
(core dumped)

After the upgrade, I had two problems: PHP wasn’t working for the website, and some programs would segfault.

The random segfault was fixable by forcing a binary upgrade of all packages.  Since there were some programs on the system that were still new enough that the version number was the same as on the remote repository, pkg didn’t upgrade them.  Those packages were linked against old versions of system libraries that predated the locale changes in DragonFly 3.6, so they’d crash.  Forcing the update for all packages fixed the issue.

The other problem, PHP on the web server, is not new to me.  The binary package for PHP does not include the module for Apache.  The solution is to build from source with that option selected.  I understand that pkg is destined to support (some?) port options in the future.  There’s also an immediate workaround for locking it.

However, the port would not build because of a security issue.  The binary package installed without any warning.  This, I am told, will change to pkg giving you the option to install if you are aware of the security problem, and whether it really affects you.  (which is just what I want, yay!)

Anyway, other than the system changes biting me because I didn’t realize some packages weren’t updated, it went very quickly.  That is the reason for binary updates through pkg, or at least a major one.

Lazy Reading for 2013/12/22

Still quiet out there, but I found some good reading.

PHP functions originally named for string length and sorting.  Yeesh.  (via)

A great old-timey game programming hack.  There’s an initial speed hack in this story, and then there’s another clever trick to fix memory corruption.  (via)

My hardest bug.  This was a pretty fiendish problem.  (via)

Gitdown: don’t commit when drunk.  I’ve done that.  Actually will use an Arduino-based breathalyzer.  (via)

Another Perl One-Liners review.

Zeno of Elea, a game.  It’s based on a classic… (via)

Vim plugins you should know about.  From that One-Liners author.

Speaking of Perl, here’s a Larry Wall interview.  An old-school hacker – he wrote patch, too.

Moonpig: a billing system that doesn’t suck.  An in-depth review of system design.  More Perl, too.

Three Books You Should Read…  Mostly BSD content.

How to use Tor wrong, in multiple ways.  It’s not for petty crimes, and it’s not any use when you’re using it from a monitored network.  (via)

Your unrelated comics link of the week: Cookie Puss.

In Other BSDs for 2013/12/21

Odds and ends for the quieter holidays.

Who’s for an OpenPF?

Things are very quiet this week; I’ve had nothing to post for some days – DragonFly or even for other BSDs.  The end of the year has most people distracted, I think.  This makes it a good time to bring up something that’s been bothering me: the state of software firewalls in BSD.  The pf utility is a BSD advantage; I’ve heard people say “I used iptables on Linux and pf is a much better alternative.”  I know that’s anecdotal, but there it is.  Here’s the question, and the reason I’m writing this: which pf?

DragonFly has a version of pf equivalent to what was shipped in OpenBSD 4.4.  FreeBSD has a version equivalent, I think, to OpenBSD 3.8 4.5’s pf, and it has been further modified.  NetBSD has a similar, older pf, but there’s people working on a NetBSD-specific version called npf, which isn’t yet ready.  And of course, OpenBSD has its version of pf.  If you feel good about these different alternatives, you call it divergence.  If you don’t feel good about it, you call it fragmentation.

Compare this to OpenSSH – it works the same on each platform.  There’s no confusion on how to configure it, or interoperability problems.  It would be wonderful to have the equivalent for pf, where other BSD platforms would import a portable version.  This software firewall is a strength, and it’s much easier to tout it when there’s only one.

I doubt there’s a way to bring it all back to one source tree.  There’s a lot vested in the different forks out there.  You know what would take a lot less effort: a compatibility test suite.  Agreeing on a common syntax and set of functions would make life easier for every end user.  It would incidentally make vendors a lot happier, too.  Even if a user or vendor wasn’t hoping to move between BSD flavors, a test suite would still guarantee a certain known level of functionality for any BSD release.

How likely is this?  I don’t know.  But I want to bring up the notion before it gets missed.  Now is a good time, with each pf version still being relatively close to one another.

Update/note: Henning Brauer is willing to help.

Lazy Reading for 2013/12/15

Halfway to Christmas; time to buy presents if you haven’t already!

DragonFly on Hacker News.  I haven’t read through the comments fully.

The Meaning of “Doom”.  This article makes a very good point; Doom was one of the first game that encouraged user participation in the creation of the game.  Not the creation when it was first made, but the endless recreations as mods.  It’s sort of the same mechanism as open source, but as an activity and not a license.

Alphabet of the Obsolete.  Also known as “Things my children don’t know and don’t care about.”

Now is a good time to donate to the Internet Archive.  (via many places)

The Development of the C Language.  Dennis Richie was good at telling stories about some otherwise very dry subjects; his histories are enjoyable.  Maybe you have to have a certain kind of temperament or interest to really like them.  (via)

The Birth of Standard Error.  It was a smelly typesetting machine where it first started.   (via EFNet #dragonflybsd)

There’s some other interesting articles on that site, including “Programming Languages vs. Fat Fingers” and “The Importance of Being Declarative“.

Better and Better Keyboards.  Continuing the keyboard theme from previous weeks.  (via)

Building the Commodore C-128.  I never used one of these, but I’m sure there’s a few readers that will be gripped with nostalgia.  (via)

The Amiga 500 as a Chrome add-in.  Nostalgia, again.  (via)

Running 4.3BSD Quasijarus with simh VAX.  It’s apparently 4.3BSD for Vax hardware.  I did not know of this, or at least I don’t remember it.

When a Bash script asks, “Where am I?”.

Have you heard the axiom that every program grows in scope until it reads email?  It’s really all programs grow in complexity until they have their own auto-updater.  (Also, XScreenSaver is awesome.)

Vim, in Javascript.  Or maybe the axiom should be ‘Everything eventually is rewritten in Javascript’.  (via)

Did you see that interstitial?  It was dope!”  (via I forget, sorry)

Your unrelated animated gif of the week: Happy talking boat.

In Other BSDs for 2013/12/14

Another week where I could get away without any commit links, just cause there’s so much BSD stuff out there.

A BSD plan: license summaries

I had a sometimes-great, sometimes-difficult trip to New York City over the past few days, and while I was there, I met the ball of energy that is George Rosamond of NYCBUG (which is having a huge party right now.)  He and I talked for a bit about various aspects of the BSD ecosystem, and one thing he noted was that people aren’t generally aware of all the licenses in use for the different software packages on the system, or even the individual licenses in the system files.

There is an ACCEPTABLE_LICENSES setting in pkgsrc, where software licensed under terms not in that list won’t install.  That’s useful, but frustrating, because it keeps people from getting what they asked for – a software install.  Something that would be useful – and it could be cross-BSD very easily – would be a license audit summary.

There’s meta-data on every package in FreeBSD’s ports and DragonFly’s dports and pkgsrc and OpenBSD’s port system.  Why not say ‘pkg licenses’ in the same way you can say ‘pkg info’, and get a summary of the licenses you have installed in the system?  (or pkg_licenses, etc.  You get the idea)  This wouldn’t prevent people from installing software, but it would give a very quick view of what you were using.

> pkg licenses

Software package    License
----------------    -------
foo-2.2.26          Apache license
bar-7.999999        Donateware
baz_ware-20131209   MIT
quux-silly-6.5      BSD

It could be extended to the base system, but I’d like to see this in all the packaging systems as a common idea, in the same way that ‘info’ in a packaging command always shows what’s installed.