The advantages of editors over database programs for modifying your data

Yesterday I mentioned that one advantagesof using plain text files is that you could modify your data withan editor instead of having to use some sort of database program(whether a SQL shell, some shell scripting on top of that, or customcode you write). One reason this is an advantage is that someoneelse has already written your editor of choice and you already knowhow to use it, but another part of this is that editors are oftengenuinely better environments to modify your data in.

There are at


Why I don't use relational databases in practice

I started out planning to write an entry I was going to title 'whenI reach for a relational database'. The problem with this implicitquestion is that in practice the answer is 'when the system I'mbuilding on basically insists onit'. Otherwise I basically don't use one, even when the problemmore or less naturally fits into a relational world. On a purelylogical basis, this is crazy; using a relational database forrelational things is much easier than the alternatives and SQLitemakes


Some uses for Python's 'named' form of string formatting

I expect that every Python programmer is familiar with Python'snormal way of formatting strings with % and 'printf' style formatspecifications. Let's call this normal way of formatting things a'positional' way, because it's based on the position of the argumentsgiven to be formatted. But as experienced Python programmers know,this is not the only way you can set up your formatting strings;you can also set them up so that they pick out what to format wherebased on name instead of


Operating systems cannot be hermetically sealed environments

There's an idea that you can find rattling around operating systems;the simplest way to describe it is that operating systems and theirOS-supplied components should be seen as essentially a black boxthat's there to provide you certain basic services. In a Unixenvironment, this would be very little beyond a standard library,standard shell script pieces, and a few similar things. The operatingsystem may have other components but they are for its internal use,not for the use of your programs and systems.


The modern world of spliced together multi-layer DNS resolution

In the beginning most people's DNS resolution was relatively simple.You might be directly on the Internet and only dealing with otherthings there, or your organization might have directly exposedinternal IPs in general DNS , or at the leastyour machine was fully inside your organization on a straightforwardnetwork. As yesterday's entry on using Unbound to do split DNSresolution implicitly points out, today'sworld is often not anywhere near that simple any more. Today's DNSresolution is increasingly assembled by splicing together multiple


How I use Unbound on Fedora 20 to deal with the VPN DNS issue

A while back Pete Zaitcev asked about the issue of VPNs versusDNS (and wound up witha good answer). This is the problem where you have a VPN connectionoff to some internal networks somewhere and you want to look up VPNhosts using one DNS server (the VPN's DNS server) but look upeverything else with another DNS server.

I have a similar situation with my home machine, as I have an IPSectunnel to work that basically puts one side of my machine on thework network,


Another problem with building your own packages: dependency issues

I've written before about how I feel being forced to build softwareyourself is a waste , but this is not the onlyproblem with the 'make our users build things themselves' approachto system packaging. Another one is interlocking dependencies, whereOS packages depend on things that you (the end sysadmin) may want toreplace with your own stuff.

Suppose that the base operating system supplies both a minimal mailerpackage and a 'smtp-notifier' package that sends mail when alert-worthysystem level things happen


The power of meaningless identifiers

In computing we have a strong tendency to create meaningful identifiersfor things. There are any number of sensible reasons for this and anynumber of things you get from using meaningful identifiers (includingthat people can remember them), but there is a pair of drawbacks toit. The large one is that almost anything with meaning can have thatmeaning change over time; the smaller one is that almost anything withmeaning can be misspelled or mistyped when initially created. Bothof these lead you to really want to change those identifiers


How I set up my Firefox 29's UI

Firefox 29 came out recently and brought with it a new user interface,which a number of people had negative reactions to. I'm not one of them.Bucking my usual trend with Firefox UI redesigns, I've come around toliking this one more than Firefox's previous UIs. Before I describe howI have my UI set up, I have to make a confession; I didn't arrive at mycurrent setup or feelings instantly and the new UI had to grow on me. I


My Firefox 29 extensions and addons

It's been a few years since I last did a comprehensive inventoryof my Firefox addons ( here , then updated here and here dueto memory issues), so it's about time for another go around. Besides,Firefox 29 has come out and upended the Firefox UI again. As beforethis is for my main browser instead of my testing browser , although the testing version has almost allof them too.

Safe browsing:

  • NoScript to disable JavaScript for almost everything. I browse with JSblocked and