Home Water Treatment Plant

Home Water Treatment Plant

Pump, filters, valve

Water in Chicago comes straight from Lake Michigan, and is pretty decent quality in general. Most houses do not have water meters, which I suspect leads to very little incentive to conserve water.  During the summer months, especially during lawn-watering season, it’s not unusual for our water to dwindle to a mere trickle.  A few spot measurements indicate that our water pressure is normally about 30 psi, but can drop to 15 psi or less at points during the summer.  In practical terms, this means that the shower stops if somebody turns on the kitchen faucet.

Meanwhile, my wife requested that I put in a system to remove chlorine from the water, for various health and hairstyle reasons.  Even with large, high-flow filters, this necessarily results in a pressure drop through the filters.

Cramped space

Pressure Reduction Valve

After a number of calculations, and toying with ideas such as placing the hose outlets upstream from the system so as to not bother filtering water that goes on the lawn (a bad idea for an active system, which could potentially draw water into the house from the hoses) I settled on a design which has worked beautifully for months.

In order from the inlet, the system consists of:

The order is important — placing the booster pump after the filters, for example, would mean that the pressure going into the filters could be as low as 15 psi, and therefore as low as 5 psi before the pump.  That’s too low — the pump would refuse to operate — or worse, become damaged.  Water can be pushed, but it can’t be pulled.

Booster Pump

Booster Pump

The pump adds 40 psi, so that if intake water pressure is 30 psi, the pressure at the first filter should be about 70 psi.  I’ve never measured intake pressure above 35 psi, and 75 psi is still comfortably below the filter housing maximum recommended pressure.  The pressure reduction valve ensures that intake pressure to the house doesn’t exceed 50 psi.  Measurements demonstrate that this is remarkably consistent, regardless of variations in intake pressure.

After all this, water in the house tastes pure and clean, the pressure is consistent and wonderful (we can water the plants, run the dishwasher and take showers at the same time.)

After all this work, the main thing I’d do differently is consider smaller filters.  The 4.5″ x 20″ filters are huge.  Each one holds a bit over 5 gallons, which is about 40 pounds of water.  I was primarily concerned with water flow and pressure drop, and bigger filters are better, but I doubt the difference would be noticeable for say, a 2.5″x 20″ filter, which would be a lot easier to change and handle.


Unhelpful Reviews

Like many modern consumers faced with a variety of possibly arbitrary choices, I find it useful to consult with others who have purchased similar items.  The Internet brings with it a plethora of unbiased and helpful product reviews, collected and categorized by retailers, bloggers, and, well, fake sites set up to sell stuff.  The Internet also brings with it reviews for which I fail to understand the motivation entirely; reviews that are so intensely unhelpful, they actually damage other reviews by being averaged into the ratings.

My journey started when it was time to replace our snow blower.  I don’t know what it is about snow blower reviews that attracts retards, but these are a sample of reviews that people felt the need to take their time and write:

1.0 out of 5 stars WORX SNOWBLOWER, March 4, 2011


Well, you haven’t helped me select a snowblower, but you have announced to the world that you’re kind of a jerk. Was your original plan to use it for the snow, then return it?

There were equally helpful positive reviews to balance this out:

5.0 out of 5 stars snow blower, December 17, 2010
I can tell you that it not long after I ordered it, it arrived. However, I guess purchasing it was a bit of insurance. No snow as of yet, but I am ready when it does.

You ordered it, and it arrived? I guess if you’re impressed by this, it may call for a review, but this is slightly less helpful to people than reviewing the box it came in based on color choice.

Later, I noticed it’s possible to review a product that’s still in the box, based on your unshakable belief in the brand:

5.0 out of 5 stars still in the box, haven’t even checked it out yet, November 1, 2010
to this day i still have not taken my rangefinder out of it’s box, but real soon, i’m sure i will enjoy what it can do for my hunting, it’s Nikon, i have several more Nikon products and that is why i ordered this rangefinder, if i didn’t beleive in the Nikon name then rest knowing i would have already had it out and checking it, i have not to this day ever had trouble or returned any Nikon product

I guess that’s about as good as a review asking you to rate your religion, but you posted this as the review for a product. Then again, a product that can make you feel this good without even opening the box probably deserves five stars.

Amazingly, this is actually a step up from this review:

3.0 out of 5 stars
Sounds like just what I need., February 18, 2011
I haven’t bought this yet but it sounds perfect for my needs because splitting the stereo into right and left channels is what I want.

Putting aside the fact that you’re reviewing it sight unseen, if it’s perfect for your needs, wouldn’t that be 5 out of 5 stars? Did some voice in your head say, well, I shouldn’t give it a bad review just because I don’t have one, and it shouldn’t get a good review because I don’t have one yet, I’d better just split the difference?

And yet, that still seems better than a review that does nothing but convey your level of extreme incompetence:

2.0 out of 5 stars Flimsy Firepit, January 21, 2011
I put this together and it fell apart cmpletely WITH A FIRE IN IT. Later I picked up the pieces and read the manual I noticed that I was supposed to attach nuts to the screws on the inside where you can’t even see them. This should have been in VERY BIG LETTERS in the instructions but all there was was a little diagram and a small note.


Sharing Speakers with Multiple Computers

If you’re like me, you have several devices on your desk that emit audio (or are at least capable of it) — on my desk alone, I’ve got two PCs, a laptop, a Chumby, an iPad, an iPhone, a Mac, and an iPod.

It seems sensible to me that rather than clutter my desk with a cheap pair of speakers for each of these devices, to get one good pair of speakers and connect everything to it.  I have a couple of audio mixers with cables that cost around $10 each in order to properly connect it; at the time, it’s the best thing I could come up with short of building a dedicated device.

N.B.:  y-cables may work okay for a couple of devices, but the signal is attenuated and multiplied, and plugging and unplugging devices from a gob of y-cables is just asking for trouble.

Stoweblank TinyMix

Stoweblank TinyMix

Our friends at Stoweblank produce a high-quality audio mixer that takes the 1/8″ (3.5mm) stereo inputs that all these devices put out, saving a ton on cabling.  As a bonus, it’s USB-powered.

I can hear alerts from my laptop while clicking away on my desktop and playing music on the Chumby, at the same time, plug in and unplug the iPad without causing problems.

In the interests of full disclosure, purchasing anything from a link in this post helps support this site as well.


High Fructose Corn Syrup and Kidney Stones

I’ll be as succinct and as blunt as I can be:  high fructose corn syrup gave me kidney stones.

For nearly ten years, I got kidney stones about once per year, on average.  Kidney stones are probably the most painful thing I’ve ever experienced, and I tried an awful lot of things before arriving at this conclusion.  Eliminating high fructose corn syrup from my diet has eliminated my kidney stones — for several years now.

I’m well aware that anecdotal evidence is not scientific, and I’m just an uncontrolled sample of one, but in my case, there’s no room for any doubt whatsoever.  There’s evidence beyond myself, however, such as the here, here,  and here.

This is prompted by this widely aired, misleading pack of lies:

High Fructose Corn Syrup Advertisement

I reject the assertion that it’s “all natural,” since it’s highly chemically processed, and I also reject the assertion that “like sugar, it’s fine in moderation.”  It’s probably fine in moderation; I can probably slip and have some every now and then without having a kidney stone, but I don’t have to avoid either sugar or honey.

I also object to this sort of snarky advertising — it implies that everybody with an objection to high fructose corn syrup does so on the basis of unfounded rumor that they cannot articulate.  And the answer?  “It’s made from corn!”

Asbestos is all natural, for heaven’s sake, so it’s hardly a strong argument that something that’s natural must be good for you.  It’s also somewhat misleading, because high fructose corn syrup certainly doesn’t appear anywhere in nature, it’s purely an artificial product.

It’s also a political ad, since it’s produced by the “Corn Refiners Association,” which is a group pushing its agenda in Congress.  Shouldn’t it be properly labeled as a political ad?

Tobacco is just as natural a product.  You can pretty much just mentally fill in “tobacco” for everything in the ad and you can see where I’m coming from.

I highly recommend avoiding corn syrup, particularly if you’ve ever had a kidney stone.

And to you, Corn Refiners Association, for shame.  I sincerely hope your thinly-veiled political ads cause a massive backlash, and that consumers educate themselves about the real danger of your health-damaging products.


The Hard Sell

I’m sure I’m not alone in my buying habits of researching a product that I want, then searching for the lowest price on the Internet. In general, this practice has served me well, and I’ve had trouble-free dealings with a number of storefronts without any trouble whatsoever.

I occasionally run into web sites with “teasers” — such as are designed to give good prices in search engines like Pricewatch or Google Product Search — where the website will suggest add-ons and accessories like extended warranties and overpriced doodads. The worst websites will automatically select these or add them to your cart. While irritating, the wary can still get a good deal with a lot of checking and cross checking to ensure that what you want is exactly what you get when you go to confirm your order.

A whole new level of dickery was achieved recently when following this basic procedure at Fotoconnection, where the tactic employed is to get some high pressure salesman to call you after your order has been placed. After placing my order for a relatively inexpensive, point-and-shoot camera, I got two emails about an hour apart asking me to confirm my order.

Perhaps unlike most people, my immediate response is, “up yours, jerks, I typed everything correctly, if you can’t handle it, it’s your loss.” Among many reasons I like online ordering is that I don’t actually have to talk to anybody. I just don’t like doing it.

So they call me.

“Sir? We’ve had a lot of problems with stolen credit cards and so we’d like to confirm your billing and shipping address.”

On the surface, this doesn’t make a hell of a lot of sense, since unless I managed to type my address incorrectly, this wouldn’t do them a lot of good. However, maybe they’re actually verifying my phone number, so I play along, figuring an address is at least innocuous. If they had asked for my credit card number, I would not have given it out. (It’s a not-uncommon scam to call somebody in the phone book and ask for their credit card number under some pretense. If they needed the number again, I’d have insisted upon calling them. But more likely, I’d have told them to pound sand.)

“I also noticed that you didn’t order a battery or charger with this camera. Would you like us to add the 5 hour or the 2 hour battery to your order?”

Suddenly, it’s obvious why they called. But, having researched the camera first, I knew better.

“I expect there to be a battery in the box,” I replied. “It’s a sealed box, right?”

“Well, yeah,” the salesman went on, “but that battery is only good for fifteen minutes.”

I’m honestly at a loss for words at this point. First of all, who measures camera batteries in “minutes?” In the context of a camera, what does this even mean? Fifteen minutes of continuous shooting? That actually doesn’t sound too bad. Fifteen minutes of shelf life? That would make even the “5 hour” battery pretty retarded. I can only conclude that the sales guy is an idiot.

“Well, 15 minutes sounds fine for now,” I said, “once I get my original order, I’ll decided if I need anything else.”

“We’ll ship it out today,” he replied, seeming either annoyed or dismayed, but not quite discourteously, and hung up.

I assume that I’ll get what I ordered; if not, I’ll sort it out with my credit card company, but in the meantime, I feel like I need to take a shower. Just. Ewwwww.

So I’m now amending my procedure above, and checking the ratings of online vendors I haven’t used before on a site like Resellerratings. Thank god I didn’t order from somewhere this bad. That being said, fotoconnection has managed to lose a customer, and next time I get a call like that, the only thing I’m going to say is “cancel. my. order.


Oh how I loathe thee, Billing Dispute Department

It’s unusual for me to see charges I don’t recognize on my credit card bill, and even then, it’s usually something my wife bought — or that I bought and the vendor name shows up as something unusual. Therefore, when I saw a charge I didn’t recognize from “Silicon Solar,” I took the step of actually calling Silicon Solar, to see if, in fact, I’d ordered anything or if they did business under another name.

Silicon Solar had no orders or history under my name, or anything remotely like it, so I filled out the paperwork to register a billing dispute with Washington Mutual. You can’t just tell them about it, you have to fill out a form — one that you have to call and have mailed to you. A pain in the butt, but it’s an acceptable level of bureaucracy. Washington Mutual issued a “temporary credit” that appeared on my next bill.

While I was in Canada, a letter came in that the merchant had responded, and they wanted “more information” from me. I called them — in an of itself a feat, because they provided an 800- number only reachable from the U.S., and declined to give any other way of reaching them — like a regular phone number, fax, etc. The letter didn’t say much else other than “call us!”

The representative on the phone said the merchant had responded, and that they needed more information from me. “What did they respond?” I asked.

“We don’t have access to that, we’ll mail it to you,” said the representative.

“Well, what exactly do you want me to do?” I asked. “Nothing has changed, and I have no new information.”

“Nothing,” said the representative. “You’ll receive the merchant’s response from us, along with a questionnaire to fill out. Send that back.”

“Fine,” I said.

The next thing I receive is a letter from Washington Mutual with the Silicon Solars’ response. This is alone galling: it’s a printout from DHL of a box being delivered to Venezuela, and a print out of an order by some guy named Javier Toyo, along with his address in Venezuela. A cover page by Silicon Solar is attached, that says “the cardholder ordered, paid for, and received all merchandise as they’ve requested without any indication of a problem.”

Obviously I take issue with the word “cardholder” in the above.

Worse, the cover letter from Washington Mutual says “We conducted an investigation of this charge based on the information available to us and concluded that we are unable to pursue this dispute further on your behalf.” What?

It goes on, “We have not received a response from you as previously requested.”

What? Apparently calling them wasn’t good enough. Which is strange, because that’s all the previous letter asked me to do — and I did. And, when I asked specifically if there’s anything else I should do or send, I was told, no, wait for the merchant’s response.

I called right away, but since it’s a Saturday, the billing dispute department wasn’t open, so I talked to the fraud department. Fraud fits the bill anyway, since I assume that somebody making unauthorized charges to my account is, in fact, fraud. They can’t help, since “it was originally entered as a billing dispute.” Huh? This implies that when you see an unauthorized charge on your account, you should somehow know that it’s fraudulent — or that you shouldn’t dispute it? Beats me, it makes no damned sense, but I also make no headway. The fraud department refuses to reverse the charge — and, strangely, also refuses to cancel my card. Yes, that seems utterly bizarre; I suspect whoever was on the phone just gave up and started lying to me.

Monday rolls around, and I talk to somebody from the actual Billing Dispute Department. As they are trained to be, they’re pleasant, but completely powerless to actually do anything. Apparently there’s some kind of rule written in stone that says that a customer may not, under and circumstances, talk to anybody actually capable of dealing with anything. That power is in the hands of a select few, who are not directly reachable under any circumstances. The best I can get is a voice mail box.

I try a couple more times — in retrospect, I probably shouldn’t have bothered, but I’m not happy at all with the response — or, more accurately, lack thereof. None of the first line wankages can do anything but tell me they understand my frustration, and reiterate the point that they’re not capable of doing anything.

On the plus side, calling them up and being a major pain in the ass does seem to have finally paid off in that the manager called, probably much, much sooner than the 24-48 hours I was told I would have to wait. It’s worth pointing out that there’s a huge difference between being a pain in the ass, where you calmly restate your case and refuse to take “no” for an answer, and being an abusive jerk, where you yell or insult the poor people answering the phone. For the most part, it’s not their fault, even though most need a great deal of persuasion to walk off their scripts and actually try to do something. I know enough about support and customer service organizations to know that the front lines is a dismal place to be, and that manager’s aren’t available at a moment’s notice to take the call of every whining bastard who doesn’t like the answer he’s given — and if your case truly does require a higher standard of care and attention, it’s hard to make the point.

At any rate, the manager finally did call back, and upon her review, she decided to issue a “courtesy credit.” Essentially, they can’t charge the merchant back (which would have been the right thing to do) because they let too much time lapse. Washington Mutual clearly screwed up by not providing me a form or some kind of response, since they fall under Visa’s chargeback rules, and without a response had to take Silicon Solar’s response at its ludicrous face value. So, Washington Mutual can’t get their money back from Silicon Solar, and they’re certainly not getting any money from me for this debacle.

Today’s cost of bureaucracy and incompetence: $99.30. But let’s look at the scorecard:

Washington Mutual: LOSS — Out $99.30 and a customer. I don’t trust a bank who lets merchants get away without, oh, the card number or name or anything matching the actual transaction. It’s just begging for something worse to happen.

Silicon Solar: WIN — Although I may never order anything from them, they got a paid order and a happy customer in Venezuela, despite apparently sloppy verification procedures.

Javier Toyo: WIN — Free stuff shipped to Venezuela? Oh hell yes, it’s a good day. God knows where he got my credit card number, his obviously false name isn’t as obvious outside of Venezeula. Due to idiocy all around, his chances of getting caught are approximately zero. It sure explains a few things about losses in the credit industry.

Me: DRAW — At the end of the day, I’m not out money for stuff I didn’t order, which is neutral at best. I don’t have to adhere to Visa’s rules, and I retain the option to just… not pay Washington Mutual, which I would certainly do if not for the “courtesy credit.” This courtesy keeps them out of the courts, I suppose, but I’m not under any illusion that they’re doing me a favor, and I spent several hours on this crap that I never should have had to.


A Tale of Audio, Firefox, and X-Windows

The venerable X-Windows has network support with grace and elegance that other window systems (I’m looking at you, Windows) have yet to come anywhere near. Point your applications at any xserver on the network, and there they run — what could be easier? On the down side, this seems to have been developed before sound was particularly important, so without doing anything fancy, your application runs anywhere but (if you’re lucky) any sound it produces emanates from the machine running the actual application. This can be somewhat disorienting, at best.

The dubious goal: to get a flash game working on an x-server — one that doesn’t even have a browser installed.

The first step was to get Firefox/Flash sound working on the gentoo x-client. (It’s been gone over many times, but X appears to use these terms backwards, a tradition which I will continue.) Simple enough:

export DISPLAY=xserver:0.0

There’s firefox, but, no sound on either the client or the server. A review of what the terminal is spewing out shows:

ALSA lib confmisc.c:848:(snd_func_card_driver) cannot find card '0'
ALSA lib conf.c:3500:(_snd_config_evaluate) function snd_func_card_driver returned error: No such device
ALSA lib confmisc.c:397:(snd_func_concat) error evaluating strings
ALSA lib conf.c:3500:(_snd_config_evaluate) function snd_func_concat returned error: No such device
ALSA lib confmisc.c:1248:(snd_func_refer) error evaluating name
ALSA lib conf.c:3500:(_snd_config_evaluate) function snd_func_refer returned error: No such device

Weirdly, other sound applications appeared to work perfectly well, albeit from the wrong box. Also weirdly, the card is clearly there and enabled, and ALSA is configured in the kernel (not as a module) with the correct sound card.

After a couple of useless dead ends, running Firefox as root revealed that it’s a permission problem. I can think of more useful ways in conveying this, but placing the user into the audio group takes care of that problem. Now I’ve got local audio, at least.

The next trick is to get the client (Gentoo) to send its audio to the server (FreeBSD) .


HP Image Zone and PVM files

HP Image Zone comes with HP cameras and printers, and is, in general, perfectly adequate for routine image printing and minor manipulation such as cropping, resizing, etc.

On the other hand, it’s remarkably opaque, having the concept of an “Album Shelf” onto which albums can be placed. Albums are collections of image files stored in XML, but with a PVM extension. However, there’s no apparent way to actually get PVM files onto an image shelf, so in the event of, say, a hard drive crash, you’ll apparently need to completely recreate any albums you might have had.

This is utterly obnoxious (not to mention unacceptable) so I actually contacted HP support, who told me that there was simply no way to import albums. One can create albums, I reasoned, and list of albums on the album shelf must be stored somewhere, after all.

After much screwing around, while tech support insisted that what I was attempting was impossible, I determined that this was all stored in

C:\Documents and Settings\[windows login]\Local Settings\Application Data\HP\Digital Imaging\db

The file format appears to be Foxpro, and there are a bunch of files in there.  Foxpro can open them, but what’s shoved into the text columns appears to be UCS-16.  The short version is that copying the database files from one installation to another copies the Album Shelf.


Crashing ATI software: atievxx.exe and the installer

After installing new drivers for an old ATI All-In-Wonder, every time the system booted up, atievxx.exe would crash. Annoying, but not tragic, and I lived with it for a while. Cleaning out the old drivers didn’t help, nor did reinstalling the OS. On the chance that it was a hardware problem with the card, I went ahead and replaced it with a newer model, new drivers and everything… and still, that atievxx.exe crash.

I finally tracked it down to a conflict with UltraVNC’s “video hook” driver. Who knew? Curiously, without its video hook driver, UltraVNC is a bit of a slug, so I replaced it with RealVNC, which I’ve been using on other systems with dual-monitor setups for a while.

On another system, I installed the operating system from scratch, and the next step was to install the drivers… But the installation program locked up the system. After trying permutations of everything (there weren’t many permutations of software to try) I resorted to ATI support — who mostly sent me form letters about where to find the latest drivers and asked if my power supply was adequate. Intriguingly, the drivers worked fine if I let Windows install them with the “found new hardware” wizard, but the ATI installer choked no matter what I did.

The problem? A Lucent winmodem sitting in one of the PCI slots. As far as I know, it works perfectly well, but it’s been disconnected for a long time, and god knows why the ATI installer doesn’t like it (or vice versa) but there it is.


Web Remote Control

The words “web” and “remote control” are used together to describe all manner of things, but here I’m talking about a remote control of a PVR, using a web page. In these days of wireless connectivity, and distributed video, it’s almost a natural thing to want to be able to control stationary equipment from a roaming laptop or tablet computer. It seems that this is the sort of thing that many people would have done before, but my searches were fruitless.

It turns out this sort of thing isn’t all that difficult to brew from scratch, although there are a lot of little pieces that need to be properly strung together. Starting from the PVR itself, an infrared emitter is necessary that’s compatible with lirc. (Consult the lirc documentation for a list of compatible emitters, and instructions for rolling your own.)

Lirc itself needs to be installed and working properly; I won’t attempt to duplicate the documentation, which is fairly straightforward, but I ran into two snags. First, lirc on gentoo requires a USE flag to be set in order to transmit at all — Gentoo has some excellent supplemental documentation here. Second, not all the buttons were represented on my remote. This was easy enough to rectify starting with the lircd.conf closest to my equipment using the irrecord tool and some hexidecimal math. (Obviously, this required that I also get lirc working as a receiver, but all I really used it for was adding additional codes.)

My Remote Next, I located a picture of my remote. The basic interface idea is to have a web page where the user can simply poke each button. They’re a little hard to read in this image, so this could be considerably improved, but realistically, after using the physical remote for a while, the positions and functions of the buttons become second nature.  In addition, rolling over each button gives its function (albeit in an ugly way; this can be improved, too, of course.)

A standard image map is used to make each button clickable. To prevent annoying refresh and latency issues, simple AJAX techniques are employed to send each button press to the web server behind the scenes.

Here’s the actual code of the pages:

pushbutton.php —
echo ‘irsend SEND_ONCE dish2 ‘ . $_GET[‘button’];
system(‘/usr/bin/irsend SEND_ONCE dish2 ‘ . $_GET[‘button’]);

Continue reading