The Chrisonomist

To be free.

Mushroom logo


Interests | Philosophy | Projects | Photos | Hacks | Files | Puzzles | Quotations | Bookmarks | Contact


Timeline

2009

June 12 Added The Weak, The Strong, The Right and The Wrong to philosophy
March 16 Added The Black Swan and A Secret Life to booklist

2008

November 12 Added Patty's Got a Gun to booklist
October 16 Added vacation photos from Maui
October 11 Added 2001 Chevrolet Impala Starting Problem and Solution
September 4 Added Analysis of Officers and Directors for Companies on the NYSE

Interests

Short and loaded list of my technical interests:

  • Cognitive radio
  • Communication theory
  • Econometrics
  • Embedded systems
  • Error correcting codes
  • Hard problems
  • Number theory
  • Reconfigurable logic
  • Signal processing
  • Source coding

Some of the finer things in life I enjoy:

  • Acoustic guitar, Mandolin, Violin (and other string instruments)
  • Bicycling, ice skating, kayaking, orienteering, and skiing
  • Coffee, tea, boba
  • Country, classical, eurodance, pop, and classic rock music
  • Eclectic and fine dining, dim sum and dumplings
  • Friends, Law & Order, Seinfeld, 24, Numb3rs, House, The Office, How I Met Your Mother
  • Hearts and spades
  • Making and laughing at jokes
  • Minimalism, simplicity, elegance, and order
  • Philosophy
  • Photography
  • Teaching
  • Vintage

Philosophy

This section contains a couple of my philosophical writings.

Fabricating the Past
Examines how advances in technology pose a threat to us in the future.
The Socially Engineered Society
Discusses the effects of consumerism and advertising in modern society.
Schizophrenic Euphoria
Concerns over rapid rewards and the effects on life.
The Weak, The Strong, The Right, and The Wrong
On the dynamics of ethics.

Projects

This section contains a presentation of several of my more interesting and better implemented projects.

15-meter FSK Transmitter
Amateur radio band 300 bps frequency shift keying transmitter for telemetry applications.
Digital Frequency Display
CPLD based, robust, modular frequency counter with eight digit display.
Delco Cassette Emulator
Replaces cassette deck in GM Delco car stereos with an auxiliary input. Can also be used to feed in external audio signals into stereos with only a CD player. Circuit boards for this project are now available!
Ethernet Telephone
Design of simple, robust, personal VoIP telephone. Uses an ARM7TDMI microprocessor (Oki ML67Q5003), Cirrus Logic CS8900A ethernet controller, and LwIP TCP/IP stack, amongst other things.
iTrack
GPS-based personal car tracking device capable of using any cellular telephone to communicate position information.
QFP-144 Universal Adapter
Adapter board for 144 pin (0.5mm pin spacing) Quad Flat Pack packages.
SoRAD
The So Radical Software Radio receiver front-end.
Webb Mask Generator
Postscript file that creates a webb mask, used to measure the phase shift between two signals, for use on an oscilloscope of any size. To use this script: first, open the file in a text editor and change the screen and display variables (5 and 4.5 inches by default, respectively) to fit your oscilloscope. If your scope has a rectangular screen, use the shorter dimension. The next step is to print the mask on a transparency. On a Windows system, you should be able to drag and drop the file to your printer icon if the printer understands PostScript. If it does not, you may need to download GSView. On a UNIX system, you should be able to simply issue lpr webbmask.ps. Note that for the Lissajous patterns rendered on the scope to make any sense, the two channels must be calibrated such that both signals have the same amplitude, and that this amplitude makes the major axis of the Lissajous ellipse equivalent to the diameter of the Webb mask circle. This can usually be achieved using the smaller calibration knob on top of the channel voltage/divison knob. Finally, read the phase by where the minor axis of the ellipse crosses the mask.
White Line Follower Sans Microprocessor
Design of a white line following robot done without using a microprocessor.
Wireless Infrared Headphones
Design of a pair of wireless headphones that relay audio through frequency modulating infrared light.

Hacks

Presented in this section are smaller hacks that are not large enough to be considered projects. Most of these hacks are pieces of code that I quickly conjured in several hours to automate a tedious task.

These unrefined works are made available in hopes that you will find them useful. Please let me know of any bugs that you find or any suggestions that you think would improve the code.

SIP telephone ringer

Small program that sends a SIP invite packet to a specified telephone, ringing it. Useful as a wake-up dialer when combined with a cron daemon.

Download

Hard disk backup over several smaller files

Using the UNIX dd tool, a hard disk drive can be copied to a file and later restored back to the disk. However, the file that is being used to store the hard disk image may have limitations. For example, it may reside on a FAT32 filesystem, in which case it has a maximum size limitation of 2GB, or it may reside on a CD-ROM. I wrote two shell scripts that split the hard disk image over several files.

The scripts are designed to be run on a UNIX system, using Slax for instance. Note that host operating system on the hard drive to be imaged is irrelevant -- the scripts merely need to be run under UNIX.

For the gzip compression to be useful, the unused portions of the hard drive must have low entropy. One way to achieve this is to write large homogeneous files to the file system, for instance a 2GB file consisting of all zeros. The compression is good --- a 20GB disk with a single Windows XP partition, 2GB full, fit into a 1.2GB image.

ReiserFS filesystem recovery on a disk with bad blocks

In an act of stupidity, I performed an rm -rf * on my home directory, by accident. I immediately attempted to perform a file recovery by unmounting my reiser file system /home partition and attempting a reiserfsck --rebuild-tree -S /dev/hda3. This process turned into quite an ordeal.

My partition had quite a few bad blocks that the file system didn't know about. reiserfsck terminated upon reaching the bad blocks. Next, I attempted to run badblocks -b 4096 -o hda3.bb -s /dev/hda3 to generate a list of badblocks to pass to reiserfsck. After many hours, I had a list of bad blocks; however, upon being passed this list, reiserfsck determined that several of the blocks were journal superblocks, and again terminated.

At this point I wrote the code that fixed my problems and allowed me to recover most of my files. There are essentially two #define options, NOSUPERDIE and NODIE. If NOSUPERDIE is 1, then upon encountering a bad block, reiserfsck does not terminate, but rather performs a destructive write to the bad block. Modern hard drives remap the block to a working block upon a destructive write. This is useful for remapping bad journal superblocks. The second option NODIE, causes the bread function to dynamically avoid badblocks, as if the blocks had been passed via the -B option. This significantly decreases the time necessary to perform bad block checks.

Batch renaming of files

Different people have different ways of naming files. Some people use spaces, capitalization, and other punctuation in filenames. Downloading files from various sources creates a quagmire of filenames. This loss of clean standardization is frustrating. More importantly, spaces often act as argument delimiters and punctuation often has special mean in scripting languages.

I wrote a small bash script called rmspace to remedy this problem. This script takes multiple files, for example via rmspace *, and removes capitalization and punctuation. Additionally, spaces are replaced with underscores.

Puzzles

Below is a collection of a variety of mind puzzles that I have come across. Unless otherwise noted, I am not the original author of each puzzle, and each puzzle has a legitimate answer. In other words, the solutions are not clever circumventions of the stated conditions. Have fun!

More good monthly puzzles can be found at IBM Research Watson.

Quotations

Contact

E-mail: chiszp[at host]alumni.caltech.edu

Telephone (SIP): sip:17470450318@sipphone.com
Telephone (PSTN): (202) 470-3814


Copyright (c) 2003-2009 Chris Hiszpanski. All rights reserved. Last modified: 03:11 EST Jun 12, 2009