Bytes and Pieces

Welcome to my website, where I'm posting software applications I've written, computer programming
methods I've found interesting, source code of some Visual C++ projects, and some short essays on a
potpourri of other topics I'm interested in.  If you have a question or would like to comment, feel free to
send me email at daybob@gmail.com.

 

-- Bob Day, December 2011.                                              Free SubDomains  


A man saw a ball of gold in the sky;
He climbed for it,

And eventually he achieved it --
It was clay.

Now this is the strange part:
When the man went to the earth
And looked again,
Lo, there was the ball of gold.
Now this is the strange part:
It was a ball of gold.
Aye, by the heavens, it was a ball of gold.

                               -- Stephen Crane
 

August, 2011 -- New versions of Call Screener and Phone Recorder.

Call Screener W7 v2 runs under either 64 or 32 bit Windows 7, and
added for version 2 is the ability to have a different "call blocked"
message for each phone number that is to be blocked.

Phone Recorder W7 now runs under either 64 or 32 bit Windows 7.


Also, I fixed a few bugs in both products.


FREE SOFTWARE APPLICATIONS:

Call Screener W7 v2
Call Screener W7 is a software application that blocks unwanted phone calls.  It runs
under either 64-bit or 32-bit Windows 7.  Call Screener requires a dial-up modem that
has voice and caller ID capability to be installed on your computer.  (Call Screener uses
only the voice and caller ID features of the modem -- there is no need to "dial-up"
anywhere.)   When a call is blocked, Call Screener speaks the message contained in the
ZapMessage.wav file to the caller.  An example ZapMessage.wav file is included in the
kit that comes in the download.  Also, if you block anonymous calls, Call Screener
plays an anonymous caller rejection message that instructs the caller how to remove
their call blocking.  Documentation is also included in the kit.

Added for version 2 is the ability to have a different "call blocked" message for each
phone number that is to be blocked.

Modems that I've tried and have worked well under Windows 7 are the HiRO
H50113 USB external modem, and the HiRO H50006 and Rosewill RNX-56AG PCI
internal modems.  I think the TRENDnet TFM-560U USB external modem may also
work, but since I haven't actually tried one, I can't vouch for it.  I've included drivers in
the kit that support both caller ID and voice for the HiRO H50113.

NOTE: The RNX-56USB modem will not work with Call Screener. I have read that
there is a bug in Microsoft's TAPI that prevents outgoing messages from being played
when used with modems that have Conexant chipsets.  Phone Recorder, however,
is not affected by this bug since it only records messages and does not play them.
Click HERE to download.

Phone Recorder W7
Phone Recorder W7 is an application that allows you to join and record an ongoing
telephone conversation. It runs under either 64-bit or 32-bit Windows 7. Phone
Recorder doesn't have much of a user interface -- just two buttons:
"Start recording/Stop recording" and "Exit".  When you click on "Start recording",
Phone Recorder will join an ongoing phone conversation on the same line as that of
the modem, and the button label will change to "Stop recording". The conversation is
stored as a .wav file in the same folder as the Phone Recorder executable (.exe) file. 
To run Phone Recorder, you need to have a dial-up modem that has voice capability
installed on your computer. Phone Recorder uses only the voice feature of the
modem -- there's no need to "dial-up" anywhere. Be sure to tell the other party or
parties on the line that you are recording the conversation if it is legally required to
do so.

Recommended Modem
The Rosewill RNX-56USB modem is the only one I can personally vouch for right
now to use with Phone Recorder. The drivers included in this kit are unpacked
versions of the drivers for Windows 7 that I downloaded from Rosewill's website. 
I've been told that the Zoom 3095 will also work for Phone Recorder, but as far as
I can tell, it's exactly the same hardware as the Rosewill, and the Rosewill is about
half the price.

NOTE1: The RNX-56USB modem will not work with Call Screener. I have read
that there is a bug in Microsoft's TAPI that prevents outgoing messages from being
played when used with modems that have Conexant chipsets. Message recording
(which is what Phone Recorder does), however, is not affected by this bug.

NOTE2: For some reason, modems with Agere chipsets apparently will not record
for more than 60 seconds, so I would rccommend you stay away from Agere
chipset modems.
Click HERE to download.

Call Screener, v1.8 - free - Block unwanted telephone calls
Call Screener is software that blocks unwanted phone calls.  It runs under Windows XP SP3,
and requires a dial-up modem that has voice and caller ID capability to be installed on your
computer. (Note: Call Screener uses only the voice and caller ID features of the modem --
there is no need to "dial-up" anywhere.)  When a call is blocked, Call Screener speaks the
message contained in the ZapMessage.wav file to the caller.  An example ZapMessage.wav
file is included in the kit that comes in the download.  Version 1.8 adds a separate built-in
anonymous caller rejection message that instructs the caller how to remove their call blocking.
Documentation is also included in the kit.  Some dial-up modems that have worked well for
me are the Rosewill USB RNX-56USB, the Zoom 3025C, the AOpen FM56-PX, and the
Best Data 56HP92-PCT.  The Rosewill is an external modem that plugs into a USB port,
and the others are internal PCI modems.
Click HERE to download.

Phone Recorder, v1.6 - free - Join and record an ongoing telephone conversation
I wrote Phone Recorder because I didn't want to pay $49.95 for EzPhone Recorder.  Phone
Recorder doesn't have much of a user interface -- just two buttons: "Start recording/Stop
recording" and "Exit".  When you click on "Start recording", Phone Recorder will join an
ongoing phone conversation on the same line, and the button label will change to "Stop
recording".  The conversation is stored as a .wav file in the same folder as the Phone
Recorder executable (.exe) file.  Phone Recorder runs under Windows XP SP3, and you
need to have a dial-up modem that has voice capability installed on your computer. 
(Note: Phone Recorder uses only the voice capability of the modem -- there is no need to
"dial-up" anywhere.)  Some dial-up modems that have worked well for me are the
Rosewill USB RNX-56USB, the Zoom 3025C, the AOpen FM56-PX, and the Best Data
56HP92-PCT.  The Rosewill is an external modem that plugs into a USB port, and the
others are internal PCI modems.  Be sure to tell the other party or parties on the line that
you are recording the conversation if it is legally required to do so.
Click HERE to download.

HomeSentinel, v1.27 - free - Guard your home or business with HomeSentinel!
HomeSentinel is software for Windows XP systems that you can use to help protect your
home or business while you are away.  It can continuously monitor the video from up to
four webcams and alert you by email, phone, or both when it detects motion.  Email alerts
contain the video image that caused motion to be detected and four additional images
spaced at three second intervals.  Click HERE to download or HERE for more info.

URLRedirector, v2.9 - free - Enables a static URL for a non-static IP address
Pay no more Web hosting fees! You’d like to use your computer as a Web server, but you
don’t have a static IP address?  URLRedirector solves that problem!  URLRedirector is a
dynamic real-time URL redirector that allows users to use a fixed, unchanging URL to go
to the website on your computer, even though the IP address of your computer may be
constantly changing.  Click HERE to download or HERE for more information.

TCPGateKeeper - free - A utility to display and control your internet connections

MemLatency, v1.6 - free - A utility to measure random access memory latency


ESSAYS:

The Mathematics of Chipkill ECC

The Dynamic Universe Theory - a Theory of the Universe that Makes Sense!

Accelerating Expansion of the Universe: Yes or No?

ECC Memory Isn't Everything -- It's the Only Thing

Chipkill Advanced ECC - Overview of How It Works

Consciousness Totally Explained and Elucidated

Why the Pucks Go at Right Angles

Time

Derivation of the Formula for Mortgage Payments

Reading


SOURCE CODE OF SOME OF MY SOFTWARE APPLICATIONS:
Feel free to use the code in this section in any way you wish.  An acknowledgement would be nice.
Please let me know about any bugs you find.

Source code for the Galois Field Chipkill Algorithm
Visual C++ project.  If you want this code, please email me at daybob@gmail.com.
I'd like to find others who are interested in the details of Chipkill.


MATLAB code to test Bell's inequality
MATLAB project.  This code performs an adjustable number of trials
of a simulated Bell inequality experiment to test for violations at
adjustable angles.

Model code for doing fits of the SCP Union SN Ia Compilation dataset
MATLAB project.  This code is intended to serve as a basis to make life easier
for anyone who wants to do his or her own fits.  Modify it to suit your own purposes.

SendATCmdToModem
Visual C++ project.  Uses TAPI in passthrough mode to send an AT command to a modem and
receive a response.  This code has no GUI and no I/O; it's just a detailed example showing one
way of doing it.  To see what it does, compile it in Debug mode and single step through it.

CSVtoTXF - Converts Buy and Sell Stock transactions to TXF format for Schedule D
Visual C++ project.  Matches stock purchases in Comma Separated Value files to their
corresponding sales and writes them as entries for Schedule D into a Tax Exchange/Export File. 
This file is suitable for input into TurboTax or TaxCut.  If you use this code, you'll probably
have to adapt the parsing section to the format of your own CSV input files.

ChatServer - Handles up to 5000 simultaneous internet text chat sessions
Visual C++ project.  Technique of using an Asynchronous Procedure Call to handle multiple
(up to 5000) internet text chat sessions in a single thread.

MemLatency - A utility to measure random access memory latency
Visual C++ project.  Contains an implementation of the algorithm for generating a random
grand tour sequence, described under "Programming Methods".

TCPGateKeeper - Blocks connections from user-entered IP addresses
Visual C++ project.  Technique of terminating a TCP/IP connection given its IP address.

WebExcavator - Searches internet web pages for email addresses
Visual C++ project.  Multithreading; technique of scanning web pages; reverse polish
deconstruction of boolean expressions; fast boolean expression evaluator.


PROGRAMMING METHODS:

Algorithm for generating a random grand tour sequence

Function to generate a bit-reversed number sequence

Cool technique for loop unrolling - illustration

Binary trees and bit reversed numbers

Boolean Expression Evaluator for Web Searches

Random Access Memory Latency
 

VITAMINS FOR THE MIND:


                               The 4:00 Meeting

Tom and Bill are standing at two places on a straight road.  Tom starts
walking toward Bill and arrives at Bill's original place 11 minutes after
Bill had left.  At perhaps a different time, Bill starts walking toward Tom
and arrives at Tom's original place 15 minutes after Tom had left.  When
each reaches the other's original place, he immediately turns and starts
back, and they meet in the center at 4:00.  Assuming that they walked at
constant rates, when did each start to travel on the road?


                          Alice Forgets Her Purse

On her way out of Macys, Alice walks down a down-moving escalator
in 50 steps.  When she reaches the bottom, she suddenly remembers
she forgot her purse, and she turns and runs back up the escalator in
125 steps, stepping five times as fast as she went down.  How many steps
are on the surface of the escalator?