Computer-Related Documents

John S. Denker

There is also a secure version of this page.

  1. Some useful observations about GNU makefiles.
  2. A perl program to convert .csv to .sql in a reasonable way. You can view additional details via cgit.
  3. A portable program to show the connection between /dev/sda, /dev/sdb ... drive letter and hardware host/bus/target numbers. It also shows the device manufacturer and serial number. This applies to SCSI disks attached using either ATA or USB. This is useful when dealing with disk errors.
  4. A tutorial on how to set up your system to handle email with a modicum of security, including how to install qmail and how to integrate it with spamassassin.
  5. A discussion of how to distribute PGP keys and fingerprints, using QR codes and/or web documents.
  6. A Countdown Timer / Alarm / Stopwatch / Split Timer. Free, libre, open-source, public domain, cross-platform javascript. Try it online, then download it for offline use.
  7. A discussion of the strengths and weaknesses of the Roomba robot vacuum cleaner. It's not fast, it's not smart, and it needs your help ... but it does clean the carpets.
  8. A paper on Image Segmentation and Recognition. This provides some useful insights as to how to normalize probabilities correction and why learning from examples should be considered a search through the space of all possible probability measures.
  9. A discussion about various schemes for encoding fancy characters in documents (especially HTML documents) and the cross-browser compatibility issues that raises. Also a discussion of the difference between a font and an encoding or a codepage.
  10. A discussion of color management and other digital imaging issues.
  11. A collection of papers on Virtual Private Networks, IPsec, and other computer network security issues.
  12. How to do useful things with IPv6. This includes an introductory section on how to get started with IPv6 on Linux plus a discussion of how to form experimental, temporary, and/or private IPv6 addresses. Most importantly, there is a screed about the many problems with NAT (aka NAPT) and how to solve them using IPv6 encapsulation and IPV6 addressing. Last but not least, there are some scripts to help with the fussy details.
  13. A discussion of some of the weird things you might see on a 802.11 WiFi network. Also included are patches for certain wireless-card drivers, to make promiscuous mode work without causing duplication of packets -- which are sometimes a big problem for applications. The patches apply to the current drivers for Lucent WaveLAN and Proxim ORiNOCO (Atheros) cards.
  14. Instructions for cloning or mirroring a disk, i.e. making a bit-for-bit copy.
  15. Hard Disk Pinout for Laptops and Desktops (ATA or IDE)
  16. Some introductory-level notes on how to debug things like kernel panic, kernel oops, soft lockup, and hard lockup.
  17. A script to configure your DNS server to block traffic to ``advertising servers'' and the associated data file.
  18. An explanation of why you might get the message
    unable to open display "....:10.0"
    when using X11 forwarding features of ssh.
  19. A higher-order symplectic integrator, suitable for integrating equations of motion efficiently with high accuracy. Written by Ernst Hairer et al, and ported to C++ and slightly extended by me.
  20. "dq" -- A handy calculator for arithmetic on dotted quads ... useful for IP addresses (IPv4 only), subnet masks, et cetera.
  21. "ddc" -- My very own general-purpose desk calculator. My first exercise in using lex and yacc (aka flex and bison).
  22. Some Suggestions for Writing Good Software. This includes a discussion of various types of documentation, good versus bad comments, and other elements of programming style.
  23. Some discussion of modern programming languages including some of the ways in which C++ is different from plain C, including object-oriented programming in general and the Standard Template Library (STL) in particular.
  24. How to Clone a Record in a Database, Using Only SQL, Even When There Is a Unique Key.
  25. An explanation of why you might get the error messages:
    name of display: :0.0
    Error: couldn't find RGB GLX visual or fbconfig
    couldn't get an RGB, double-buffered visual
    and how you might make the problem go away.
  26. An explanation of why you might get the mythtv error messages:
    ERROR: Master backend tried to connect back to itself!
    and how you might make the problem go away.
  27. Instructions for how to create a bootable USB stick or SDcard that actually works, using only standard Linux command-line tools.
  28. Instructions for how to reinstall grub onto your master boot record and other ways to backup and restore your MBR (including sector 0 and other low-numbered sectors). This works even if you cannot boot the system in the normal way. This also includes instructions for how to reconstruct the grub.cfg file if it has been damaged. Again, this works even if you cannot boot the system in the normal way.
  29. Instructions for how to transfer files between linux and an android phone via USB and otherwise.
  30. A general discussion of Security Recomendations for Any Device that Depends on Randomly-Generated Numbers.
  31. A discussion of how to improve the security of systems booted from a ``Live CD'' or other read-only media; specifically, to fix up the initial seed for the pseudo-random number generator. This includes some software tools to make the job much easier.
  32. Some notes on how to set up maintain consistency of DNS and rDNS records (especially for multi-homed hosts). This includes examples of working zone files, and even a script to check for consistency.
  33. Some ancient notes on the block diagram for a sound card.
  34. Some notes on what is a display manager, a session manager, and a window manager along with some notes on what to do when things go wrong, e.g. when compiz is broken.

    This includes some notes on how to set up a text-mode login, with no display manager at all in selected runlevels.