2005-12-31: |
Notes on getting a Solaris hardware inventory
A logical consequence of def being an executable statement
|
2005-12-30: |
On Lisp's fundamental data structure
A Python surprise: the consequences of variable scope
|
2005-12-29: |
What I use asserts for
|
2005-12-28: |
Unix folklore: using multiple sync commands
|
2005-12-27: |
A thought about free software licenses
|
2005-12-26: |
Thinking about a closure confusion
|
2005-12-25: |
Weekly spam summary on December 24th, 2005
|
2005-12-24: |
When comment spammers attack
|
2005-12-23: |
Why the (Sun) JVM is irrelevant to me
|
2005-12-22: |
What I really want is error-shielding interfaces
|
2005-12-21: |
How to get your web spider banned from here
|
2005-12-20: |
Another problem of secrecy
A sociopolitical advantage of distributed version control
|
2005-12-19: |
Initializing Python struct objects with optional defaults
|
2005-12-18: |
Emulating C structs in Python
Weekly spam summary on December 17th, 2005
|
2005-12-17: |
The problem of secrecy
On the web, text colours are an all or nothing thing
|
2005-12-16: |
On the name of USB flash memory drives
|
2005-12-15: |
Another introspection trick
Reddit versus Digg: a little detail that matters
|
2005-12-14: |
A thing I don't like about Linux
|
2005-12-13: |
What Python threads are good for
|
2005-12-12: |
Waiting for both network IO and inter-thread notifications
|
2005-12-11: |
Weekly spam summary on December 10th, 2005
|
2005-12-10: |
How not to set up your DNS (part 6)
|
2005-12-09: |
A surprising hazard of running as root all the time
Security versus resilience
|
2005-12-08: |
How not to set up your DNS (part 5)
|
2005-12-07: |
Google Desktop and conditional GET
|
2005-12-06: |
How not to set up your DNS (part 4)
An explanation for the popularity of threads
|
2005-12-05: |
Dropping packets versus rejecting them in firewall rules
|
2005-12-04: |
Weekly spam summary on December 3rd, 2005
|
2005-12-03: |
CBL listings broken down by ISP
How to do TCP keepalives in Python
|
2005-12-02: |
Iptables modules that aren't in the iptables manpage
|
2005-12-01: |
Stopping brute-force ssh scans the easy way
|
2005-11-30: |
An advantage to introspection and an interactive interpreter
|
2005-11-29: |
A little gotcha in shell scripts
|
2005-11-28: |
How not to set up your DNS (part 3)
What Python's global interpreter lock does (and doesn't) protect
|
2005-11-27: |
Weekly spam summary on November 26th, 2005
|
2005-11-26: |
How not to set up your DNS (part 2)
How not to set up your DNS (part 1)
|
2005-11-25: |
Making self-signed SSL certificates with OpenSSL
A little sysadmin twitch
|
2005-11-24: |
Solaris 9's slow patch installs
Multiprocessors are a leaky abstraction
|
2005-11-23: |
A quick outline of Firefox extension structure
|
2005-11-22: |
How to fiddle with Firefox .jar files relatively easily
|
2005-11-21: |
Why I don't write 'if (NULL == foo) ' in C code
|
2005-11-20: |
Weekly spam summary on November 19th, 2005
|
2005-11-19: |
Solaris 9 sendmail irritations
|
2005-11-18: |
SQL as metaprogramming
|
2005-11-17: |
Why Linux threads use up so much memory
|
2005-11-16: |
How not to do DNS for internal domains
|
2005-11-15: |
The scope of the peril of having a highly dynamic web site
|
2005-11-14: |
Banning MSNBot: an open letter to MSN Search
|
2005-11-13: |
Weekly spam summary on November 12th, 2005
|
2005-11-12: |
Why using local variables is fast in Python
|
2005-11-11: |
The importance of understanding Python's implementation
|
2005-11-10: |
How doing relative name DNS lookups can shoot you in the foot
|
2005-11-09: |
Using Python introspection for semi-evil
|
2005-11-08: |
Fun with DNS: a semi-obscure problem
|
2005-11-07: |
Examining Python's string concatenation optimization
|
2005-11-06: |
Weekly spam summary on November 5th, 2005
|
2005-11-05: |
Minimizing object churn to optimize Python code
|
2005-11-04: |
Modifying Linux kernel configuration options the easy way
|
2005-11-03: |
Fun with upgrading our backup server
|
2005-11-02: |
How well do some Atom feed fetchers do conditional GETs?
|
2005-11-01: |
Another tip: Label your hard drives
|
2005-10-31: |
A tip: Always include NAT in your Linux kernel configuration
|
2005-10-30: |
Weekly spam summary on October 29th, 2005
|
2005-10-29: |
Affiliate marketing is undead
The problem with If-Modified-Since as a timestamp
|
2005-10-28: |
Inside building RPMs with Python distutils
|
2005-10-27: |
Databases are APIs
|
2005-10-26: |
An example of why DBAs make money
|
2005-10-25: |
A smooth disk swap
|
2005-10-24: |
On banning web search engines
|
2005-10-23: |
One reason why I like Unix
Weekly spam summary on October 22nd, 2005
|
2005-10-22: |
A gotcha with Python and Unix signals
|
2005-10-21: |
How ETags and If-Modified-Since headers interact
MSNbot (still) has problems with binary files
|
2005-10-20: |
A Python surprise: exiting is an exception
Accidentally shooting yourself in the foot in Python
|
2005-10-19: |
Thoughts on Jakob Nielsen on weblog usability
|
2005-10-18: |
Another aphorism of system administration
|
2005-10-17: |
The Myth of Support (Part 3)
|
2005-10-16: |
Weekly spam summary on October 15th, 2005
|
2005-10-15: |
How Hotmail is doing on the spam front
Estimating search engine popularity
|
2005-10-14: |
On the naming of machines
|
2005-10-13: |
Try things out with new machines
|
2005-10-12: |
Really understanding availability numbers
|
2005-10-11: |
Improve your web experience by turning Javascript off
|
2005-10-10: |
A useful resource: gmane.org
|
2005-10-09: |
Troubleshooting versus support
Weekly spam summary on October 8th, 2005
|
2005-10-08: |
Exploring some spamblogs
Solaris 9 'Power management'
|
2005-10-07: |
Three levels of database usage
|
2005-10-06: |
First irritations with Solaris 9
|
2005-10-05: |
Thinking about redundant power supplies
|
2005-10-04: |
A left-field aphorism
Keeping changing systems stable
|
2005-10-03: |
Some important notes on getting all objects in Python
|
2005-10-02: |
Weekly spam summary on October 1st, 2005
|
2005-10-01: |
Some problems in common definitions of 'spam email'
The many consoles of Linux
|
2005-09-30: |
Pinging weblogs.com in Python
|
2005-09-29: |
Something C programmers should not write in Python code
|
2005-09-28: |
MSNbot goes crazy with RSS feeds
|
2005-09-27: |
Some hints on debugging memory leaks in Python programs
|
2005-09-26: |
A peril of having a highly dynamic web site
|
2005-09-25: |
Weekly spam summary on September 24th, 2005
|
2005-09-24: |
A spammer roundup
It's a multi-protocol world after all
|
2005-09-23: |
Be cautious with numbers in awk
The (probable) importance of accurate Content-Types
|
2005-09-22: |
Excluding buggy RPMs from a yum repository
|
2005-09-21: |
More Fedora Core 4 problems with X
What vendor updates are pending on your Linux system?
|
2005-09-20: |
Some words of wisdom for free webmail providers
Two Python import tricks
|
2005-09-19: |
Function definition order in Python
|
2005-09-18: |
Weekly spam summary on September 17th, 2005
|
2005-09-17: |
Demon Internet joins the webmail hall of shame
|
2005-09-16: |
Getting a list of all objects in Python
Web browsers make bad text editors
|
2005-09-15: |
Efficiently distributing huge files to lots of workstations
|
2005-09-14: |
Why I really dislike the Singleton design pattern
|
2005-09-13: |
Concurrency is tricky
The problem of being overcautious
|
2005-09-12: |
Things not do for your network daemon's debugging option
The annoyance of arbitrary limits
|
2005-09-11: |
Weekly spam summary on September 10th, 2005
Comment spam writ large
|
2005-09-10: |
Hotmail's Other Spam Problem
Hotmail has a spam problem
More Fedora Core 4 Anaconda fun
|
2005-09-09: |
When Python classes are pointless
|
2005-09-08: |
Another Fedora Core 4 Anaconda bug
|
2005-09-07: |
The MSN search spider has gone crazy
|
2005-09-06: |
Two sides of Internet identity
|
2005-09-05: |
Why print-based debugging is so popular
|
2005-09-04: |
Weekly spam summary on September 3rd, 2005
|
2005-09-03: |
Varying interpretations of improper CIDRs
|
2005-09-02: |
The 'Trade Press' and blogs
|
2005-09-01: |
On blocking access from large IP ranges
|
2005-08-31: |
LILO vs GRUB: why LILO still wins for servers
|
2005-08-30: |
The Version Control System dependency problem
|
2005-08-29: |
Python's dangerous automatic Unicode conversions
|
2005-08-28: |
Weekly spam summary on August 27th, 2005
|
2005-08-27: |
How not to package software in RPMs
|
2005-08-26: |
Two faces of RSS
|
2005-08-25: |
Explaining rubber duck debugging
|
2005-08-24: |
Another aphorism of system administration
Completely using an alternate yum configuration
|
2005-08-23: |
Diagnosing an install problem: a case study in indirect failures
|
2005-08-22: |
On being nibbled to death by moths
|
2005-08-21: |
Weekly spam summary on August 20th, 2005
Mutating Referer Spammers
|
2005-08-20: |
Disk setup in our Fedora Core 4 Kickstart environment
|
2005-08-19: |
The March of the Cheap
|
2005-08-18: |
The pains of modern disk storage
|
2005-08-17: |
Parallelizing DNS queries with split
Remember to think about the scale of things
Annoying RSS Feed Tricks
|
2005-08-16: |
Things that could happen to your backups
|
2005-08-15: |
Check your backups
|
2005-08-14: |
Weekly spam summary for August 13th, 2005
Those amusing Referer spammers
|
2005-08-13: |
The anatomy of a DWiki bug
|
2005-08-12: |
Chiming in on static versus dynamic typing
|
2005-08-11: |
Some interesting software tools (part 1)
An aphorism of system administration
|
2005-08-10: |
Why open source needs distributed version control
|
2005-08-09: |
My first comment spam
|
2005-08-08: |
Security is a pain
|
2005-08-07: |
XBL rejection stats, August 6th 2005
|
2005-08-06: |
The importance of 'transparency' in data structures
|
2005-08-05: |
Perimeter firewalls and universities
|
2005-08-04: |
Keep your hands off my font size
|
2005-08-03: |
Why Perl is not my favorite language
|
2005-08-01: |
Multilevel list comprehensions in Python
Spam breakdown by SBL listing, July 31st 2005
|
2005-07-31: |
Spam storm aftermath, July 30th 2005
|
2005-07-30: |
Briefly doing DNS queries in Perl
|
2005-07-29: |
How spammers seem to be coping with greylisting
|
2005-07-28: |
Doing DNS queries in Python
|
2005-07-27: |
Spam Storm, July 26th 2005
|
2005-07-26: |
What ASNs are most actively spamming us
|
2005-07-25: |
Reliably archiving things
|
2005-07-24: |
Spam summary for July 23rd 2005
The necessary evolution of mail servers
|
2005-07-23: |
The Myth of Support (Part 2)
|
2005-07-22: |
The Myth of Support (Part 1)
|
2005-07-20: |
Please produce useful error messages
|
2005-07-19: |
Exceptions as efficient programming
Exceptions and casual programming
|
2005-07-17: |
Skills I use when troubleshooting
How many places actually send us email?
|
2005-07-15: |
First Irritations with Fedora Core 4
How AMD killed the Itanium
|
2005-07-13: |
The legend of Debian Linux
|
2005-07-12: |
Chasing a problem in our Gnome customizations
|
2005-07-11: |
Adding submenus to Gnome
|
2005-07-10: |
Tools versus frontends in systems programs
|
2005-07-09: |
The minimum antispam features of a modern SMTP server
|
2005-07-08: |
Why apt-get is not my favorite application
|
2005-07-07: |
What RSS can learn from Usenet
|
2005-07-06: |
Mozilla versus SeaMonkey
|
2005-07-05: |
Fedora Core 4's buggy Anaconda
|
2005-07-04: |
The big trick of running lots of systems
There's two sorts of large systems
|
2005-07-03: |
Checking for dead DNSBls
|
2005-07-02: |
What shouldn't be a method function
|
2005-07-01: |
Why this site has almost no design
|
2005-06-29: |
Reconsidering network authentication delays
|
2005-06-28: |
Scripting and automation capture knowledge
|
2005-06-27: |
Some quick CBL stats
Dangerously over-broad error catching
|
2005-06-26: |
Some spam stats at June 25th, 2005
|
2005-06-24: |
An open letter to free webmail providers
An unchanging system should be stable
|
2005-06-23: |
A real use for staticmethod
|
2005-06-22: |
Future Sysadmin Jobs
|
2005-06-21: |
The problems with enforced UTF-8 only filenames
|
2005-06-20: |
Small details can matter (or: a little nifty Python bit)
|
2005-06-18: |
SMTP IP firewall stats at June 18th, 2005
|
2005-06-17: |
The problem with CPAN (and other similar systems)
|
2005-06-16: |
AJAX vs Dialups
Iterator & Generator Gotchas
|
2005-06-14: |
Putting a pleasant Python surprise to use
Pitfalls in generating Last-Modified:
|
2005-06-12: |
Making a Python mountain out of a molehill
Why a Blog?
|
2005-06-11: |
web/HTTPRedirects
web/CSSIrritation
|