October 18, 2017

The first successful build of OpenBSD base systemNan Xiao
Although the document of building OpenBSD base system is very simple, it still costs me nearly half a week to complete this work. I shared the experience here and hope the lessons I learned can help more newbies like me: (1) The most important thing is about /usr/obj folder: it must be clean; belongs to […]

October 17, 2017

DragonFly 4.9 users and dportsDragonFly BSD Digest

Because of the major version number change, there’s no packages built for DragonFly 4.9.  Your options are to either update to 5.1 (which you probably meant to do anyway if you are running current) or manually point to the newest packages.  Or just build from dports.

For clarity, this does not affect you at all if you are running 5.0 release.  It only affects you if you are running DragonFly-current and have not updated in a while.

Tarsnap talk tonight at SemiBUGDragonFly BSD Digest

Michael W. Lucas is talking tonight at SemiBUG’s monthly meeting, and will be presenting on Tarsnap.  Go, if you are near Michigan.

New package, py-test-subtesthack-0.1.1OpenBSD packages
hack to explicitly set up and tear down fixtures
New package, py-test-localserver-0.3.7OpenBSD packages
py.test plugin to test server connections locally

October 16, 2017

DragonFly 5 released!DragonFly BSD Digest

DragonFly 5.0.0 has been released.  HAMMER2 is available in the installer.  Multi-volume/clustering support isn’t in there yet, but support for  deduplication/snapshots/booting and so on all are.   My post to users@ has upgrade instructions.


My euroBSDCon 2017Vincent's Blog

Let me just share my feedback on those 2 days spent in Paris for the EuroBSDCon. My 1st BSDCon.

I'm not a developer, contributor, ... Do not expect to improve your skills with OpenBSD with this text :-)

I know, we are on Octover 16th, and the EuroBSDCon of Paris was 3 weeks ago :(. I'm not quick !!! Sorry for that

October 15, 2017

Now that OpenBSD 6.2 has been released a few days ago, that release CD sets are no longer sold (to save...Ingo Schwarze (schwarze@)
Now that OpenBSD 6.2 has been released a few days ago, that release CD sets are no longer sold (to save administrative overhead and let Theo focus on implementing actual technical innovations), and that the 6.2 release song will only appear in a few weeks, here is a substitute for the time being!

If you like (or use) the system, don't forget to head over to: https://www.openbsd.org/donations.html
Lazy Reading for 2017/10/15DragonFly BSD Digest

I have more links to post but I just plain ran out of time.

Your crazy update of the week: The Beacon Project.

Less crazy/better idea: The Church of the SubGenius | A Documentary.  Pledging.

syspatch(8) Binary Updates Now for the Latest Release OnlyUndeadly

In a message to tech@, Theo de Raadt (deraadt@) wrote:

We intend to only build syspatches for one release in the future.
Errata patches will continue to be generated for 2 releases.

The reasoning is syspatch on 2 architectures for 2 releases requires 4
machines, and therefore twice the handholding.  It seems better to keep
the time available to start doing syspatches for more architectures.

This can be seen with the latest TCB errata, for which there are patches for versions 6.1 and 6.2, but a binary update only for 6.2.

October 14, 2017

Clean out /usr/obj directory before compiling base system of OpenBSDNan Xiao
I tried to build base system of OpenBSD: # cd /usr/src # make obj && make build After a while, the following weird error was reported: cc -O2 -pipe -g -Wimplicit -I/usr/src/lib/libc/include -I/usr/src/lib/libc/hidden -D__LIBC__ -Werror-implicit-function-declaration -include namespace.h -Werror=deprecated-declarations -DAPIWARN -DYP -I/usr/src/lib/libc/yp -I/usr/src/lib/libc -I/usr/src/lib/libc/gdtoa -I/usr/src/lib/libc/arch/amd64/gdtoa -DINFNAN_CHECK -DMULTIPLE_THREADS -DNO_FENV_H -DUSE_LOCALE -I/usr/src/lib/libc -I/usr/src/lib/libc/citrus -DRESOLVSORT -DFLOATING_POINT -DPRINTF_WIDE_CHAR -DSCANF_WIDE_CHAR -DFUTEX […]

October 13, 2017

books chapter fourteenTed Unangst (tedu@)

Some old, some new.


Bernie Cosell worked at BBN, writing code for the Interface Message Processors (IMPs), which connected the first two nodes of the ARPANET. He started as an application programmer but within a few weeks moved on to system programming and became the “czar of the PDP-1 timesharing system”. Of all the things to be a czar of... His first computer in high school, an IBM 1620, didn’t have arithmetic hardware. Even addition was performed with lookup tables.

His first project at BBN was a hospital communication system, between doctors and nurses on different floors. Debugging was pretty difficult, requiring flipping switches on the front panel and reading the lights that lit up. Bernie had a pager that would buzz when the system crashed, then he’d go to a payphone and call the hospital, and provide instructions about which switches to flip to fix the problem. Over the phone.

Bernie quickly developed a reputation as the guy who could fix problems nobody else could. But his secret was that he’d rewrite a lot of the trouble code without actually finding the bug. The potential danger is that you introduce more bugs by doing this. Bernie avoided getting in too much trouble because he was always very methodical, but he readily acknowledges that if you’re not careful you can leave things much worse off.

Some people should read Knuth, but probably not everyone. You need some understanding and feel for how different data structures behave, but it becomes tempting to use the cool stuff. “This is the ideal place to do an AB unbalanced 2-3 double reverse backward pointer cube thing and I always wanted to write one of those.” What does make one a better programmer is writing lots of programs.

The software for the IMP was written on a PDP-1, then printed out onto paper tape and fed to the Honeywell machine. Debugging was fun. I think in part due to the development process, they had the original source listing, but this wouldn’t exactly match the binary running on the machine. Instead, they would load a series of patches into the machine, but wouldn’t update the master image. They’d fix bugs by adding a jump, running a bit of code, jumping back, etc. They had paper printouts of the code, marked up in ink, but maybe not every copy of the printout had the same markings. That must have been delightful.

Bernie wrote Doctor, the ELIZA clone.

We return to the topic of rewriting. Don’t fix a problem by adding a specific fix if it doesn’t belong. By this, if the patched version of the function doesn’t look like it was originally designed that way, the fix is wrong. Code shouldn’t look like an accumulation of fixes, but rather the result of divine inspiration. I like this idea, which I’ve never seen expressed quite like this. Reading code, it’s very common to see little conditions sprinkled here and there to handle this or that edge case. The result works, but it’s very fragile. Can the code be redesigned to have fewer afterthoughts?

Keep an up to date mental vision of how a project should look. Nobody will approve time to rewrite everything, but whenever a bug is fixed, steer the code in the direction of the ideal version.

Bernie mentions that everything is more complicated now. You can do things that couldn’t be done before, but at the same time he’s stunned how complicated Tk is and how much code there is to make a button bigger or smaller. “I’m glad I can have a little bit of repute as having once been a good programmer without having to actually demonstrate it anymore, because I don’t think I could.”


Hope you’ve got your shots, it’s viral week.

James Hong founded Hot or Not to settle a debate with his brother about whether a girl was hot or not. They started with their own pictures, but very quickly the site grew in popularity. Their bandwidth bill was going to be enormous. They quickly moved the images off site. Instead of submitting a photo, you’d submit a link to a picture on GeoCities, and Yahoo would pay for the hosting. That solved one problem for a while, but as the site grew they needed better hosting. They called up Rackspace and asked them for free hosting in exchange for exposure. This worked. Then another startup, Ofoto, wanted to host the photos because it would drive traffic to their site. So they went from paying for hosting, to free hosting, to getting paid to host. Nice deal.

HP’s first product was a bowling foul line indicator. (Fact check: true enough.)

James Currier founded Tickle, an online quiz site. He was in business school and looking at the big internet companies, and they were all focused on replicating existing media. “For example, Spinner.com was putting radio online, and they got sold for $340 million. I thought that was crazy.” Dude, they put radio on the internet! One day in school everybody took a personality test, and when the results came back everybody talked about it for weeks. James decided he could make such tests available to everyone. Old media tells us about other people, Tom Brokaw, Tom Cruise, but doesn’t help us know them. The internet was a new medium that would let us learn about people we know.

The first tests were designed to help you find a job, or pick an SUV or a minivan, or make other life choices. Seems like a far cry from the which color smurph are you quizzes popular today.

James had some difficulty selling the idea at first, because nobody wants to be the first. They want to see what everyone else does. Eventually he worked his way to getting a term sheet, and suddenly he was getting acquisition offers, even though nothing else had changed.

The various scientific tests weren’t really attracting many users, but James remembered that advertisements with dogs and babies are more memorable. “Let’s do a test for what kind of breed of dog you are.” And so it begins. Eight days later they had a million users.


A review of the propositions of the original Mythical Man-Month in outline form. “If this is all the original book said, why did it take 177 pages to say it?” Indeed, the whole book is here, but it’s not actually that useful without the accompanying prose.

One notable correction made is the assertion that developers should always have complete access to review the internal implementation of the components they use. Brooks has reversed his position, and now favors encapsulation.

As a checklist, I think there could be some benefit to regular review. There’s too much material in the book to remember it all all the time, but the outline makes it easy to identify ways to improve processes.


44. Write documentation. Internal documentation can take the form of comments, which should explain why something is done. The code itself explains how it is done. Keep a single authoritative source for things like database schemas instead of repeating them. Use markup languages that allow producing output in a variety of forms. They mention that it’s bad for programmer to throw material over the wall to technical writers, but don’t provide an alternative.

45. Manage expectations. Actually, they don’t like this phrase as elitist. Instead, work together to come to a common understanding. But really, that just sounds like a nice gloss on dealing with an unreasonable user. I don’t think it’s easy or automatic, so perhaps manage is the right verb.

46. Take pride in your work. Sign your name to it. But don’t be jealous.


Numbers are numbers, but floating point is floating point. There are lots of kinds of numbers, like fractions, irrational, transcendental. Binary coded decimal is a convenient way to handle fractions like dollars and cents with a computer. It’s an example of fixed point. When using fixed point, though, you need to know what range of values will be represented.

Remember when you learned about scientific notation? We can write big numbers like the earth is 4.9 x 10^11 feet from the sun. This splits the number into a fraction part, or characteristic, or mantissa, or significand. That’s the first number. The number after the ten is the exponent.

Now let’s take a number and chop it up into a series of negative powers of two. This gives us a binary point representation. And now we dissect IEEE 754 floating point numbers. Sign bit, exponent bits, significand bits. Do not use floating point for money. It can be difficult to calculate results for functions like sin(x) using floating point because the infinite series is infinite, but if you know what you’re doing you can stop after twelve terms for 53 bit precision.

Once upon a time, floating hardware existed on a special coprocessor and you had to write special code to use it. We’ve moved on a bit since then.


A lighter set of chapters. James Hong also provided some dating tips (don’t date crazy girls even if they’re hot) but it’s probably not relevant to one’s programming career.

New package, woff2-1.0.1OpenBSD packages
Web Open Font Format 2.0 library
BSDNow 215: Turning FreeBSD up to 100 GbpsDragonFly BSD Digest

There’s no in-reference in this week’s BSDNow, but I think they already did the “it goes to 11” reference.  Among other news items, they’ve caught ClonOS, which I did not know about.

Removed, ruby22-rss-0.2.6Removed OpenBSD packages
improved ruby RSS and Atom parser

October 12, 2017

HAMMER1, on LinuxDragonFly BSD Digest

Tomohiro Kusumi has made the userspace tools for HAMMER1 compilable on Linux, so you could create a HAMMER1 volume on a Linux system.  No, it’s not the ability to read/write HAMMER1 in Linux, unfortunately – just some manipulation of volumes.  I don’t know what his future plans are for HAMMER1|2 on Linux, if any.

Turning FreeBSD up to 100 Gbps | BSD Now 215BSD Now
We look at how Netflix serves 100 Gbps from an Open Connect Appliance, read through the 2nd quarter FreeBSD status report, show you a freebsd-update speedup via nginx reverse proxy & customize your OpenBSD default shell.
Upgrade encrypted OpenBSD to 6.2 in Vultr hostingTuM'Fatig

Because OVH hosting as damm slow, I tested Vultr hosting (because they are *BSD friendly). I first tried OpenBSD 6.2-beta, then upgraded to 6.2. Of course, root is encrypted. Here’re my notes. Install OpenBSD with encrypted root on Vultr Create the VM Log into Vultr web interface. In the “Servers” section, click “+”. Choose a “Server Location” ; I used “France”....

The post Upgrade encrypted OpenBSD to 6.2 in Vultr hosting appeared first on TuM'Fatig.

Removed, dnsfilter-0.4Removed OpenBSD packages
dns rate limiter for divert(4)

October 10, 2017

vmx(4) added to DragonFlyDragonFly BSD Digest

DragonFly has also gained the vmx(4) virtual network driver.  This is in DragonFly-current now and will be in the 5.0 release.

New package, py-hgnested-0.8OpenBSD packages
mercurial extension to work with nested repositories
A SMART trickDragonFly BSD Digest

If for some reason smartmontools seems to think your disks aren’t SMART-capable, force smartd to use SCSI ioctls.  has a snippet to use in your smartd.conf for just that.