Wandering Thoughts archives

2013-12-31: Two uses of fmt
Reversing my view on Python 3 for new general code: avoid it
Link: Alex Gaynor's 'About Python 3'
2013-12-30: My growing entanglement into vi
2013-12-29: Broad thoughts on tags for blog entries
2013-12-28: The era of known top-level domains or valid TLD patterns is mostly over
2013-12-27: A reason to keep tags external in 'entry as file' blog engines
2013-12-26: How ZFS scrubs routinely save us
2013-12-25: Procedures are not documentation
2013-12-24: The 'entry as file' blog engine problem with tags
2013-12-23: A good reason to use write-intent bitmaps
2013-12-22: The benefits of using expendable email addresses for most things
2013-12-21: If you're using Linux's magic SysRq, increase the log level right away
2013-12-20: A realization: on the modern web, everything gets visited
2013-12-19: Your (HTML) template language should have conditionals
2013-12-18: Thinking about what we'll need for reproducible OmniOS installs
2013-12-17: You probably don't want to use Make to build your generated files
2013-12-16: My computers are increasingly sort of Internet terminals
2013-12-15: Making large selections in xterm (and urxvt and Gnome Terminal)
2013-12-14: Why I'm not likely to use Chrome much in the future
2013-12-13: Using cgroups to limit something's RAM consumption (a practical guide)
2013-12-12: Some observations from playing with PyPy on DWiki
2013-12-11: The problem with nondeterministic garbage collection
2013-12-10: My current view of PyPy
2013-12-09: Hardware is weird (disk enclosure edition)
2013-12-08: Sometimes the right thing to do is to stop (and even to give up)
2013-12-07: Things get weird with read-only NFS mounts and atime on Linux
2013-12-06: The three levels of read-only NFS mounts
2013-12-05: Some thoughts on a body of knowledge for system administration
2013-12-04: sudo is not an auditing mechanism
2013-12-03: The three faces of sudo
2013-12-02: What Go has become for me: Python with performance
2013-11-30: Why 'hotplug' approaches to device handling are the right way
The case of the disappearing ESATA disk
2013-11-29: How modern Linux software RAID arrays are assembled on boot (and otherwise)
2013-11-28: A quick analysis of bounces here
2013-11-27: The difference between CPython and Python
2013-11-25: From CPython bytecode up to function objects (in brief)
Track your disk failures
2013-11-24: Baidu's web spider ignores robots.txt (at least sometimes)
2013-11-23: You are not fooling us with broken bounce addresses
2013-11-22: My hack use for Chrome's Incognito mode
2013-11-20: test is surprisingly smart
The difference between no argument and an empty argument
2013-11-18: Why booting Linux from a ZFS root filesystem with GRUB can be hard
2013-11-17: The 10G Ethernet performance problem on Linux
Sending and receiving file descriptors in Python
2013-11-16: Unix getopt versus Google's getopt variant and why Unix getopt wins
2013-11-15: Professional knowledge, certification, and regulation
2013-11-14: One reason I like Go: it seems natural to avoid object churn
2013-11-13: The cost of expensive hardware and the benefit of hindsight
2013-11-11: Go's getopt problem
2013-11-10: Are those chassis fans actually still spinning?
My views on network booting as an alternative to system disks
2013-11-09: Google Feedfetcher is still fetching feeds and a User-Agent caution
2013-11-08: The spectrum of options when netbooting systems
2013-11-06: Why you might not want to use SSDs as system disks just yet
Modern versions of Unix are more adjustable than they used to be
2013-11-04: How writes work on ZFS raidzN pools, with implications for 4k disks
2013-11-03: Wikitext needs a better way of writing tables
Why we're switching to SSDs for system disks
2013-11-02: Revising our peculiar ZFS L2ARC trick
2013-10-31: Our likely future backend and fileserver hardware
Naming disk devices: drive IDs versus drive locations
2013-10-30: An open question: part uniformity versus unit cost
2013-10-28: If you're on the IPv4 Internet, you really are in public now
2013-10-27: Old and new addresses and spam
Some things I've learned from transitioning a website to HTTPS
2013-10-26: 10G Ethernet and network buffer sizes (at least on Linux)
2013-10-25: Modern disk write caches and how they get dealt with (a quick overview)
2013-10-24: How to force a disk write cache flush operation on Linux
2013-10-23: Paying for services is not necessarily enough
2013-10-21: NFS's problem with (concurrent) writes
Thinking about how I want to test disk IO on an iSCSI backend
2013-10-20: Thoughts inspired by the abstract idea of Docker-like things
2013-10-19: I should never have allowed 'outside' content to break my layout
2013-10-18: ZFS uberblock rollback and the top level metadata change rate
2013-10-17: There are two cases for changing SSL/TLS cipher settings
2013-10-16: Disused addresses and the impact of spam
2013-10-15: Why I'm not looking for any alternatives to iSCSI for us
2013-10-14: The importance of small UI tweaks (for me), dmenu edition
2013-10-13: Revisiting some bits of ZFS's ZIL with separate log devices
2013-10-11: Some pain points of parsing wikitext (and simplifications that avoid them)
How DWiki parses its wikitext (part 1)
2013-10-10: Sun's NeWS was a mistake, as are all toolkit-in-server windowing systems
2013-10-09: An interesting bug with module garbage collection in Python
2013-10-07: What happens when CPython deletes a module
2013-10-06: What reloading a Python module really does
The per-NFS-operation data for NFS mounts in /proc/self/mountstats
2013-10-05: The xprt: data for NFS mounts in /proc/self/mountstats
2013-10-04: The bytes and events data for NFS mounts in /proc/self/mountstats
2013-10-03: What is in /proc/self/mountstats for NFS mounts: an introduction
2013-10-02: What your User-Agent header should include and why
2013-09-30: Centralizing syslogs as an easy way to improve your environment
2013-09-29: Spammers illustrating, well, something
Universities and long term perspectives
2013-09-28: Why I put configuration management systems over packaging systems
2013-09-27: The long term future of any particular configuration management system
2013-09-26: Trying to explain my harshness on configuration management tools
2013-09-24: A semi-wish for an official 'null MX' standard
2013-09-23: The FTE pricing gamble (for vendors)
ZFS filesystem compression and quotas
2013-09-22: An example of optimizing C in the face of undefined behavior
2013-09-20: Nested conditional expressions in Python (and code golf)
2013-09-19: Processes waiting for NFS IO do show in Linux %iowait statistics
Load is a whole system phenomenon
2013-09-18: Reconsidering external disk enclosures versus disk servers
2013-09-17: The pain (or annoyance) of deploying a simple WSGI thing
2013-09-15: Regular expression performance and performance folklore
Identities, trust, and work
2013-09-14: A basic overview of SAS and using SATA with SAS
2013-09-13: Why I think dir() excludes metaclass methods
2013-09-12: I am not a (Unix) purist
2013-09-11: Understanding why CSRF protection really needs cookies
2013-09-09: Why the RPM source and binary package format is superior to Debian .debs
A slow realization: many of my dotfiles don't need to be dotfiles
2013-09-07: Why wiring things up physically instead of virtually is better for us
Good SSL for your website is absurdly difficult in practice
2013-09-06: Making switch configuration changes is not as easy as it looks
2013-09-05: The physical versus the virtual approach to network wiring
2013-09-04: What (and how) I use HTML tables for layout here
2013-09-02: The current weak areas of ZFS on Linux
A little bit more on ZFS RAIDZ read performance
2013-08-31: Simple availability doesn't capture timing and the amount of warning
HTML quoting as I currently understand it
2013-08-30: I'm done with feeling guilty about using HTML tables for layout
2013-08-29: A new piece of my environment: clearing the X selection
2013-08-28: I'm vaguely yearning for a simpler framework than Django
2013-08-26: An example GNU Readline quoting function
2013-08-25: On classifying phish spam as malware
Adding basic quoting to your use of GNU Readline
2013-08-24: My personal view of Fedora versus Ubuntu on the desktop
2013-08-23: Looking at how many viruses we've seen in email recently
2013-08-22: I've changed my thinking about redundant power supplies
2013-08-21: Disk enclosures versus 'all in one case' designs
2013-08-20: The challenge for ARM servers, at least here
2013-08-19: My views on various bits of disk drive technology today
2013-08-16: SSDs may make ZFS raidz viable for general use
A peculiar use of ZFS L2ARC that we're planning
Funding and the size of hardware you want to buy
2013-08-15: My understanding of modern C undefined behavior and its effects
2013-08-14: The pragmatics of an HTTP to HTTPS transition
2013-08-13: You should convert wikitext to HTML through an AST
2013-08-11: The feature (or features) I really want added to xterm
Multi-mount protection and SAN failover
2013-08-10: The importance of names, illustrated through my mistake
2013-08-09: Link: My current dmenu changes
2013-08-08: How to accidentally reboot a server
My Cinnamon desktop customizations
2013-08-07: Understanding how generators help asynchronous programming
2013-08-05: Who or what your website is for and more on HTTP errors
2013-08-04: What's changed in Unix networking in the last decade or so
2013-08-03: The paucity of generally useful HTTP error codes
The pragmatic issues around HTTP error codes mattering (or not)
2013-08-02: I'm giving up on a custom laptop environment for Fedora 19
2013-07-31: The problem with a custom laptop environment: designing it
A Python code structure problem: exception handling with flags
2013-07-30: Phish spam and outside events
2013-07-29: A consistent preference in APIs for kernel and other low-level APIs
2013-07-28: The constraints shaping kernel APIs
2013-07-27: The easy path versus the virtuous path (in system setup)
2013-07-26: Communication is work and a corollary
2013-07-25: An important thing about security issues in HTTP error responses
2013-07-24: Why vendor prices are important things to have
2013-07-23: When Python regexp alternation is faster than separate regexps
2013-07-22: External disk enclosures versus disk servers
2013-07-21: A fun problem: monitoring randomness reduces it
2013-07-19: A bit on the performance of lexers in Python
Thinking about the security issues in HTTP 403 versus 404 errors
2013-07-18: Fedora 19 and the search for volume management
2013-07-17: Do specific HTTP error codes actually matter?
2013-07-15: Systemd needs sensible, non-truncated output
Git's petty little irritation for me
2013-07-14: Why single vendor solutions are a hard sell
2013-07-13: What we need in our fileservers (in the abstract)
2013-07-11: The ZFS ZIL's optimizations for data writes
ZFS transaction groups and the ZFS Intent Log
2013-07-10: Knowing when to go your own way with open source programs
2013-07-09: How we want to recover our ZFS pools from SAN outages
2013-07-07: Sometimes the right thing to do is nothing (at least right then)
A mistake to avoid with summer interns
2013-07-06: Is it particularly useful to have old Unix source sitting around?
2013-07-05: ZFS deduplication is terribly documented
2013-07-04: My version of the story of universities and Unix source code
2013-07-03: You can re-connect() UDP sockets (portably)
2013-07-02: Today's question: are anti-spam statistics useful for us?
2013-06-30: Our pragmatic approach to updating machines to match our baseline
Some very basic DNS blocklist hit information for the last 30 days
2013-06-29: connect() plus write() versus sendto() for UDP sockets
2013-06-28: The limitations of not actually knowing a language
2013-06-27: How much of our incoming email is checked at SMTP DATA time
2013-06-26: What I want from a future version of NFS
2013-06-25: Balancing Illumos against ZFS on Linux
2013-06-24: How to get your syndication feed fetcher at least temporarily banned here
2013-06-23: 'Human error' is not a root cause of problems
2013-06-22: Automatedly overwriting changed files is not a feature
2013-06-21: A Django application design puzzle about modularity
2013-06-20: The question of whether to rewrite an old but working service
2013-06-19: Our approach to configuration management
2013-06-18: What's in the way of us using automated configuration management
2013-06-17: My job versus my career: some thoughts
2013-06-16: Python 3 has very little benefit for ordinary Python programmers
2013-06-15: I'm considering building a custom laptop environment
2013-06-14: The core issue in the Python 3 transition (from my view)
2013-06-13: I don't usually think about IO transfer times
2013-06-12: UI details that you don't expect to can matter a lot
2013-06-11: The good and bad of IPS (as I see it)
2013-06-10: What the SELinux community should be doing
2013-06-09: SELinux should have its own errno value
2013-06-08: The Flickr redesign and knowing your site's focus
2013-06-07: My current understanding of 'software defined networking'
2013-06-06: Why building RPMs for a different architecture is a hard problem
2013-06-05: The case against blog sidebars
2013-06-04: SELinux's toxic mistake
2013-06-02: Security is not the most important thing to most people
Why I do IPSec improperly and reduce my security
2013-05-31: The mystery of POSTs with a zero Content-Length
Understanding the MongoDB code that people are laughing at
2013-05-30: I find Systemtap oddly frustrating
2013-05-28: How you should package local-use configuration files
2013-05-27: Understanding SQL placeholders
Our situation with ZFS and 4 Kb physical sector disks
2013-05-26: Empirically, modern mailing list services are spam senders
2013-05-24: Understanding how CVE-2013-1979 might be exploited
My issue with infinite scrolling web pages: the lack of a stopping point
2013-05-23: Why web robots sending Referer headers is wrong
2013-05-21: Diffbot's bad Referer header
2013-05-20: A serious potential danger with Exim host lists in ACLs
2013-05-19: Today's comment spammer trick: regurgitated comments
The technical effects of being an out of tree Linux kernel module
2013-05-18: A little habit of our documentation: how we write logins
2013-05-17: Why I'm not considering btrfs for our future fileservers just yet
2013-05-16: Why ZFS's CDDL license matters for ZFS on Linux
2013-05-15: Why I've so far been neglecting functional programming languages
2013-05-13: My language irritations with Go (so far) and why I'm wrong about them
The Unix philosophy is not an end to itself
2013-05-11: The consequences of importing a module twice
2013-05-10: Illustrating the tradeoff of security versus usability
Disk IO is what shatters the VM illusion for me right now
2013-05-08: Thoughts on when to replace disks in a ZFS pool
How ZFS resilvering saved us
2013-05-07: Python's relative import problem
2013-05-05: Unix is not necessarily Unixy
The original vision of RISC was that it would be pervasive
2013-05-04: What I see as RISC's big bets
2013-05-03: Virtual disks should be treated as 4k 'Advanced Format' drives
2013-05-01: Two xargs gotchas that you may not know about
2013-04-30: The two stories of RISC
2013-04-29: My practical problem with preconfigured virtual machine templates
My view of ARM versus other RISCs
2013-04-28: My sysadmin view of Python virtualenvs
2013-04-27: Some theories on why DNSBLs may be dwindling away
2013-04-26: Are there less anti-spam DNS blocklists than there used to be?
2013-04-25: How SuS probably requires the 'run at least once' xargs behavior
2013-04-24: Two mistakes I made with VMs today
2013-04-23: Goodbye, djb dnscache
2013-04-21: RCS should not be your first choice for version control
Why a free SSL Certificate Authority is not horrifying
2013-04-19: How ZFS deals with 'advanced format' disks with 4 Kb physical sectors
How I want storage systems to handle disk block sizes
2013-04-18: How SCSI devices tell you their logical and physical block sizes
2013-04-17: Some thoughts on going to HTTPS by default
2013-04-15: The basics of 4K sector hard drives (aka 'Advanced Format' drives)
Go's friction points for me (and a comparison to Python)
2013-04-14: Python's data structures problem
2013-04-13: Classic linked lists versus Python's list (array) type
2013-04-12: My view on software RAID and the RAID write hole
2013-04-11: Something I'd like to be easier in Solaris's IPS
2013-04-10: Some important things about OpenBSD PF's max-* options
2013-04-08: Fedora 18's TexLive packaging failure
Why ZFS still needs an equivalent of fsck
2013-04-07: The apparent source of my Firefox memory bloat problems
2013-04-06: What I needed to do with Grub2 to change my boot disk
2013-04-05: Authoritative, non-recursive DNS servers now need ratelimiting
2013-04-04: An irritating OpenBSD PF limitation on redirections
2013-04-03: How to make sysadmins unhappy with your project's downloads
2013-04-02: Why listen(2)'s backlog parameter has such an odd meaning
2013-03-31: Why we'll continue to have local compute servers in the future
Can we really use the cloud?
2013-03-30: One irritation in xargs's interface
2013-03-29: Illumos-based distributions are currently not fully mature
2013-03-27: What checksums in your filesystem are usually actually doing
2013-03-26: Reconsidering a ZFS root filesystem
2013-03-25: Rethinking avoiding Apache
My (current) view of using branches in VCSes
2013-03-24: Looking at how many external recipients inbound email goes to
2013-03-22: Looking at how many recipients our average inbound email has
The problem with trying to make everything into a Python module
2013-03-21: The FreeBSD iSCSI initiator is not ready for serious use (as of 9.1)
2013-03-20: Don't use ab for your web server stress tests (I like siege instead)
2013-03-18: The wrong way for a framework to lay out projects
2013-03-17: The power of suggestion that documentation has
Argument validation using functions
2013-03-16: I'm giving up on upgrading my laptop from Fedora 14
2013-03-15: A dive into the depths of yes `yes no`
2013-03-14: What I want out of a web-based syndication feed reader
2013-03-12: MATE Desktop's failure in Fedora 18
In universities, computers are not an essential service
2013-03-10: The easy way to wind up with multiple subnets on a single (V)LAN segment
The systemd dependency problem
2013-03-09: Why .rpmnew files are evidence of packaging failures
2013-03-08: Debian shows how to do Apache configuration right (and Fedora fumbles it)
2013-03-06: How we make Exim cut off bounce loops
Turning off delays on failed password authentications
2013-03-04: Why you should never use '/bin/sh -c ...' in configuration files
2013-03-03: Why a netcat-like program is a good test of a language
Go: when I'd extend an interface versus making a new one
2013-03-02: The mythology of spending money on things, or not doing so
2013-02-28: A decorator for decorators that accept additional arguments
Looking at whether Zen-listed IPs keep trying to send us email
2013-02-27: Link: Go at Google: Language Design in the Service of Software Engineering
2013-02-26: How Linux servers should boot with software RAID
Thinking about how much Solaris 11 is worth to us
Looking at whether (some) IP addresses persist in zen.spamhaus.org
2013-02-24: You should avoid using socket.SOMAXCONN
What limits the number of concurrent connections to a server
2013-02-22: (Ab)using awk on the fly
2013-02-21: Go: using type assertions to safely reach through interface types
Some notes on my first experience with Go
2013-02-20: The meaning of listen(2)'s backlog parameter
2013-02-19: The source of C's dependency hell for linking
2013-02-18: The strikes against Solaris 11 for us
2013-02-17: Some brief opinions and notes on uWSGI
2013-02-16: Finding out what TLS/SSL cryptography people actually get with your servers
2013-02-15: SSL/TLS cipher names (aka 'cipher suites') and what goes into them
2013-02-14: The cost of an API mistake in the socket module's fromfd()
2013-02-12: Some notes on Linux's ionice
2013-02-11: The sinking feeling of discovering a design mistake in your code
Thinking about how I use email
2013-02-10: A little irritating (but understandable) limitation on Go interfaces
2013-02-09: Solve your command parsing problems by using scripts
2013-02-08: Linux's great advantage as a Unix is its willingness to make wrenching changes
2013-02-07: Today's learning experience with CSS: don't be indirect
2013-02-05: What makes DWiki and other dynamic file based blog engines slow
2013-02-04: Dynamic web sites and blogs need not be slow, illustrated
What good cryptography error messages need to include
2013-02-03: Systems with cryptography should always have minimal workarounds
2013-02-02: A fundamental problem with the trackback protocol
2013-01-31: The shifting SBL, as experienced here
Why you should support specifying comparison keys (and functions)
2013-01-30: Thinking about FreeBSD versus Illumos for our ZFS fileservers
2013-01-28: Some patterns for easy to parse Domain Specific Languages in Python
2013-01-27: How the modern web 2.0 social web irritates me by hiding discussions
User mode servers versus kernel mode servers
2013-01-25: Some places where I think that Unix is incomplete or imperfect
Unix needs to grow and a consequence of that
2013-01-23: My Unix is a general purpose operating system
What I want to know about kernel security updates
2013-01-22: Disaster recovery preparation is not the same as a DR plan
2013-01-20: Disaster recovery for computers is a means, not an end to itself
Real disaster recovery plans require preallocated resources
2013-01-18: SLAs, downtime, and planning
More on my favorite way of marking continued lines
2013-01-16: My favorite way of marking continued lines
How I drafted (okay, wrote) an entry in public by accident
2013-01-14: Why JavaScript (or something like it) is in demand
Good JavaScript usage is a good thing
2013-01-13: Blogspot's massive web 1.0 failure
2013-01-12: Runtime loading of general code usually requires general dynamic linking
2013-01-11: A thought about static linking and popularity
2013-01-10: The fundamental problem faced by user-level NFS servers
2013-01-09: It turns out I'm biased towards kernel iSCSI target implementations
2013-01-08: Why we wound up using Linux for our iSCSI targets
2013-01-07: Why bad support matters (war story included)
2013-01-06: 24 hours of Atom feed requests here
2013-01-05: What I think changed to make spam deliveries not cost-free
2013-01-04: DTrace's stable providers are not good enough
2013-01-03: An alterate pattern for polymorphism in C
2013-01-02: Some patterns for polymorphism in C

Page tools: See As Normal.
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.