Fruddled Gruntbugglies

Enthralling readers since 2005

Author: lpaulriddle

  • Lots of fun stuff

    A smorgasbord of various topics today.

    I biked in for the first time since 6/21 today. A week of bad weather at the end of June, followed by a 5-day Independence Day weekend, then more unsettled weather the following week, all combined to keep me off the bike for awhile. Our boiler job starts tomorrow, which will potentially affect later rides this week, so I figured today was do-or-die if I’m going to get back into a routine. So, I did.

    I also signed up for online bill-payment through our brokerage, now that they’ve kindly made it free. I haven’t used a bill payment service since the late 90s, and I’ve heard they’ve come a long way. I hope to try it out later in the week — I need to wait for some material to arrive snail-mail first.

    And, lastly, I’m going to do a bit of computer shuffling..

    [More:]

    Currently, I have

    Name Location CPU OS RAM Disk Use
    sonata office P4 2.4ghz Linux 512mb 150gb Desktop
    concerto office P3 450mhz Linux 576mb 8gb Server
    doze office P3 700mhz Windows XP 384mb 20gb Windows Desktop
    snorkelwacker home P2 300mhz Linux 384mb 16gb Server

    Now that I’m running Remedy on a centrally-maintained Windows 2003 server, and I’ve switched from SQL Navigator to Oracle SQL Developer, I no longer need a full-time Windows desktop in my office. I actually will only need Windows when I’m watching my son, so he can play games. So, I’m thinking I’ll take the 700mhz box, add some memory to it, and make it my office server box. It’ll run Linux full time and dual-boot into XP on the rare occasion that Michael is here. Then I’ll take the 450mhz box home, make it my home server, and put my ancient 300mhz box out to pasture. That will buy me a bit of extra performance at home, and more memory (the 300mhz box is maxed out at 384mb).

    For the future, I’m moving away from Linux on the desktop in favor of OS X. So, my next new desktop computer will most likely be a Mac, which will then free up the 2.4ghz box. Then, the bubble-down process will begin again. Fun fun!

  • Mortar for pool coping stones

    I swung by Lowes today to see what kind of mortar (and mortar ingredients) they carry. Neither they nor Home Depot seem to carry white Portland cement, so unless I go through a supplier or lumber yard, it looks like my only choice is gray mortar. However, I’m not sure that’s such a bad thing. Most of the stuff is going underneath the stones, where it won’t be seen. Gray Portland is cheaper than white Portland. What about using gray mortar to bond the stones, then filling in the gaps and other visible areas with white grout? That might be a plan. I just need to look into what kind of “grout” (I put that in quotes, because grout, mortar, etc. all seem to be basically the same thing, namely portland cement, sand, and additives in varying ratios) I would need to get.

    Lowes carrys Quikrete products (Home Depot carries Sakrete). They have a bewildering variety of different Quikrete products on the shelf…

    [More:]

    Number Description Bag Weight Bag Price
    1102 Mortar Mix 60lbs $4.00
    1125 Type N Masonry Cement 70lbs $8.00
    1125 Type S Masonry Cement 70lbs $8.50
    1136 Mason Mix – Type S Mortar 60lbs $4.50
    1136-58 Blended Mortar Mix 80lbs $5.32
    1124 Portland Cement Type I/II 94lbs $9.64
    1103 Sand/Topping Mix 60lbs $4.00
    1230 “Quikwall” Surface Bond Cement – White 50lbs $17.00
    1962 Medium Sand 50lbs $5.00
    1152 All-Purpose Sand 50lbs $2.90
    1133 Vinyl Concrete Patch 40lbs $13.43
    1585 Precision Grout 50lbs $14.00

    The task now, is to go through all of these, check the Quikrete web site to see what’s actually in each of them, and determine which product(s) are appropriate for my job. Stay tuned.

  • Honeywell VisionPro 8000 t-stat

    I just installed one of these to replace our existing Honeywell t-stat, which was a T8600 series (badged as a “Chronotherm IV Plus”). As part of our big boiler job, we’re splitting our main floor into two heating zones, and I’ll use the old stat for the new zone. The new VisionPro 8000 has a humidity control that will run the A/C when the humidity goes above a preset value. This is the first thermostat I’ve seen with this feature. I’ve always thought it would be a great idea, especially on cool, humid days when the A/C doesn’t run much and the house feels damp and clammy. It doesn’t take much A/C to lower the humidity in the house; just a few minutes to circulate air through the condenser. When you’re trying to change the temperature, you have thermal mass to deal with; that’s not the case with humidity. So, thanks to the new stat, we can have a comfortable house on cool, humid days, without using much extra electricity.

    Aside from the humidity control, the VisionPro has a number of improvements over the old Chronotherm IV line. Among others:

    • A much more installer-friendly mounting plate. It has holes to fit a standard electrical wall box. Also, the wire entry opening is in the middle, with mounting holes centered on either side of it. The Chronotherm IV’s mounting holes were off-center, making it a pain to put one where there was previously an electrical box (I know this from experience).
    • One single model handles multiple powering schemes. The Chronotherm IV had three separate models: A power stealing type, a battery powered model, and a direct-wired version that used a common wire. For the VisionPro, they’ve dropped the power stealing option and included both battery and transformer options on the same model. If both are used, the batteries are used for backup power. To me, this makes sense and I’m sure it reduces manufacturing overhead costs.

    Add to that a nice, slick touch-screen interface, and it seems like a great thermostat. We’ll see how it does over time.

  • Pool coping project underway

    Today I officially got the pool project underway, after 6 weeks or so of procrastination. After a week of foul weather, I finally got a decent day, so I took off work and rented the concrete saw. It did the job quite nicely, and quickly enough that I only needed a 4-hour rental.

    It took a bit of time to get the hang of the saw, but it was very easy to use. The blade had no problem cutting through the entire slab. The water feed did a great job of keeping the dust to a minimum, and it probably sped the job up by keeping the blade cool. I was not able to cut any of the curved areas, which I sorta expected. Not sure how I would handle these. A 7″ angle grinder might work for the area around the steps, but the corners are a little too tight for any kind of rotary blade.

    Next I need to clear the joint and clean up the mess, which figures to be more time consuming than the cutting. The wet concrete dust forms a kind of pasty mud, which sticks to the deck and won’t fully vacuum up. I’ll probably end up using my pressure washer to clean it off the deck.

    With the joint partially cleared, I can see that a lot of the fill around the pool has eroded over the years, from water seeping into the joint. I’m not planning on doing anything about it, as I’d need to demolish the deck (that’s a job for the next owner of the house). But, once I caulk the joint it’ll stop any further erosion.

    Once I’ve cleaned the joint I may go ahead and fill it (at least partially) with backer rod, to keep junk from falling into it before it’s caulked. Hopefully I’ll be able to finish prepping the joint over the long weekend; then I can focus on re-mortaring the loose coping stones.

    Oh, and the stupid Tulip Poplars have already started dropping leaves, and it’s not even July yet. It’s going to be a long summer..

  • The paradox of pool solar covers

    We have a solar cover for our pool. It’s essentially a big, plastic sheet of bubble-wrap that sits on the pool surface. To remove it, we crank it onto a big reel — it’s pretty much a necessity to have a reel for these things, particularly with a large pool like ours.

    After 5 seasons of dealing with solar covers, I’ve learned quite a bit about them. Contrary to what one might initially think, they don’t increase heating during the day when the pool is exposed to sun. In fact, they actually reduce daytime heating by blocking sunlight. There’s a bit of a greenhouse effect that heats the top foot or so of water, but the rest of the water sees less sun so doesn’t heat up as much. One desirable side effect of this is that it reduces chlorine usage during the day. So.. if you’re going on vacation and want to cut down on chlorine demand, put the cover on.

    The biggest benefit of a solar cover is that it reduces heat loss and evaporation at night. So for the warmest water, you want to cover the pool in the evening and uncover it during the day.

    [More:]

    The drawbacks of solar covers are subtle and a bit paradoxical (hence the title of this post). The biggie: You’d think that using a solar blanket to cover a pool would keep the pool cleaner, but it doesn’t. In fact, you could argue that it actually makes the pool dirtier. It’s true that when the pool is covered, stuff will fall on the cover instead of into the water. And sure, you can even use a leaf rake to clear the larger debris off the cover before you remove the cover. But when it rains, the dirty and untreated rainwater will collect around the folds and creases of the cover, and then when you remove the cover, the dirty water (along with whatever debris is still there) all falls into the pool and fouls the clean water. Then, because most of the debris is already waterlogged, it immediately sinks down to the bottom of the pool. Contrast this to when the pool is uncovered: the skimmers collect all the debris before it sinks, and the rainwater immediately mixes with the treated water rather than puddling up on the cover.

    Solar covers (like any cover) also encourage neglect of the pool. When the pool is covered, I find myself more likely to skip chores like adding chemicals, brushing, emptying skimmer baskets, running the automatic cleaner, etc. When you combine this with rain and extra organic debris, it can lead to an algae bloom pretty quickly.

    Conclusions: Unlike conventional covers, these things really are not meant to keep stuff out of the pool. Use them only for their thermal properties (chilly nights etc), and keep them off during the day and in particular, when it rains. If you must use the cover when it’s raining to conserve heat, uncover the pool as soon as possible after the rain stops.

    I’ve often thought about getting a leaf net cover to keep out debris. I think it would complement the solar cover nicely, and in certain instances the two could be used at the same time. I hesitate because I’m not sure how much trouble it would be to put on and take off, and how I would anchor it down to keep it from blowing away, falling in the pool, etc. When you think about it, another tradeoff with covers in general is that they are an impediment to getting in the pool. It’s much easier to go swimming when the pool is uncovered and ready to go. No one wants to spend time fumbling with a big, unwieldy cover beforehand. Still, in the late summer and early fall, when we’re swimming less frequently anyhow, the leaf net may be worth the hassle.

  • Revisiting legacy myUMBC session management

    Now that we’ve entered the brave new world of SSN remediation, it’s time to think about taking another step with myUMBC: We should stop using HP-ID as the primary key for legacy session management, and use UMBC Campus ID instead. Here’s why…

    All of our web proxy channels which use the old portal as a back end, rely on the legacy code for session management and authentication. These channels, by design, often contain content above and beyond stuff that involves SIS. However, they rely on the SIS database, and the presence of an HP-ID, to work. Only a subset of people at UMBC have HP-IDs (at last count, there were 280,645 people in our directory, of which 274,244 had HP-IDs). People without HP-IDs have issues rendering these channels and taking full advantage of the portal. To get around this, I generate “bogus” HP-IDs for these folks to use as a primary key in the session management table. That makes things “sort of” work for them, but there are still problems — for one, the link ACL stuff in the legacy portal doesn’t fully work because it does LDAP queries against the HP-ID.

    How do we address this? Well, the ultimate answer is to stop using HP-IDs as the primary key, and switch to campus IDs. On the surface, this seems easy. However, it’s actually a huge can of worms, because of sloppy development in the past. Rather than doing any code-sharing back then, our developers all wrote (or cut-and-pasted) their own code to manipulate the session table. As a result, we have 5,000 (slight exaggeration) apps that will each need to be updated to the new scheme. We’re paying now for cutting corners then.

    I guess I should look at this as an opportunity to clean up some of this old code and get all the apps using a single library. But, that takes time, which means that this won’t be happening right away. In the meantime, I guess we’ll continue to limp along and deal with the no-HP-ID users as best we can.

  • Oracle SQL Developer

    I’ve just discovered Oracle SQL Developer, and it looks like it’s going to really make my life easier. I’ve been using an old, crusty version of SQL Navigator for my SQL visualization needs, and it’s always worked, but I’ve never been crazy about it. For one, the UI is very klunky — the mouse wheel doesn’t work, and it doesn’t auto-scroll when I expand collapsible lists. So I end up doing a lot of click-and-drag scrolling, which is annoying (keep in mind this is a really old version of the software; hopefully these issues have been resolved in more recent releases). And, the software is Windows-only, so I have to remote desktop into my Windows box to run it. This gives it a cramped feel, because the remote desktop has a lower resolution than my main display, and I can’t resize it to be as big as I want. And last but not least, our firewall requires me to run it over a VPN connection, and the VPN kicks me off after 12 hours, fubaring my connections and requiring me to restart it daily. Extremely annoying.

    Enter SQL Developer. It looks promising. It runs on Windows, Linux and Mac. The GUI is much slicker than the version of SQL Navigator I was running. At the same time, Rob gave me the tip to run it over an SSH tunnel to a machine on the DB server’s trusted network, which means I can bypass the VPN. Wins on all counts.

    Installation was straightforward, after I figured out how to point it at the correct JDK. It requires Sun’s JDK1.5, but it initially was ignoring my JAVA_HOME environment variable and using an older version. I poked around the initialization script and found that it was using the directory search path to find the JVM. I added the JDK1.5 bin directory as the first thing in my search path, and then it worked. Then I set up the SSH tunnel:

    ssh trusted-host.umbc.edu -L 1522:oracle.server.umbc.edu:1522

    After that, I was up and running. It looks great. Stay tuned for further impressions.

  • myUMBC redesign coming along

    What’s this… a rare work-related entry on a weekend??

    Well, it is the weekend, but I’m hacking on the portal anyhow, to get ready for our relaunch this August. It’s coming along marvelously, thanks mainly to Collier, but I’ve been busy with it too. The relaunch will include:

    • A complete redesign of the front end (users will think we did something 😉
    • Framework upgrade from uPortal 2.4.3 to uPortal 2.5.2
    • Switch layout managers from Aggregated Layouts (ALM) to Distributed Layout Manager (DLM)
    • A flexible development environment (built around CVS) that accommodates multiple developers and makes it easy to deploy from scratch

    It’s an ambitious undertaking given the time frame, but it’s really coming together amazingly well. The new portal instance is up and running on our test server. Today, I got our “Local Connection Context,” (which provides connectivity to the legacy myUMBC perl codebase via web proxy channels) working. There were a couple “gotchas” with doing this. First off, I made the executive decision to point the test-instance web proxy channels at the production SIS data. Yeah, we do have a development SIS instance, but it’s a little too rough-around-the-edges to use for this purpose. For example, there’s no (reliable) FastCGI version running, and using the standard CGI stuff would absolutely kill the performance. And, we’re not really concerned with testing the SIS stuff on the test portal instance — we’re really more concerned with ensuring that the SIS stuff renders properly. To that end, it makes more sense to point to the stable, production SIS code, to get the closest approximation to what would be running in prod anyhow.

    Doing this raises a problem, though — the portal is connected to the DEVL Oracle instance, but to render production content, I also need a connection to the PROD instance. In production, I only need one database connection; in devl/test, I’m going to need two. I handled this by adding an additional JNDI data source for the prod database, and adding code to the connection context to read the data source info out of a properties file. I called the data source ProdPortalDb (it’s defined in /properties/uPortal55.xml), and the properties file is /properties/myumbc.properties.

    Stay tuned for more.

  • Pool coping project — getting started

    Time to get started on the pool repair project.. better late than never I suppose. I’ve blocked off this coming Thursday to rent a concrete saw and cut back the expansion joint. Also, I’ve been thinking a lot more about what to use to mortar the coping stones in place. Terry Tamminen’s excellent book, The Ultimate Pool Maintenance Manual, includes instructions for making what he calls “patch mix”, using white portland cement and sand. He uses this same stuff (possibly with different ingredient ratios; I don’t have the book here to confirm) for patching plaster, anchoring coping stones, and grouting stones and tile. I think this might be the way to go, rather than buying premixed bags of mortar as I was originally planning. Just need to find a supplier. I’m not too confident that the big boxes will stock white portland. If not, I’ll try my favorite lumber yard. Will work on researching this over the next few days. (Update 6/22.. no sign of white portland at Home Depot).

    Oh, and the loose strip of waterline tile in the deep end fell off all by itself two days ago. I had to dive in to fish it out. Remarkably, it stayed completely intact, leaving me with a roughly 2-foot strip of mortar and pool tile, and the beam behind it is fairly clean too. I need to decide if I want to try to re-attach it, or just start over and retile (I have plenty of extra tile, so either is an option). This is the last step of the project, and won’t be happening until fall when I can lower the water level, so I’ve got plenty of time to think about it.

    [More:]

    6/21: Informative posting on poolforum.com about setting pool tile.

    6/22: Well, I decided to scrap my plans for the day due to unfavorable weather. However, I did go to Home Depot to take a better look at the concrete saw. I found out:

    • They supply all the fuel mixture I need (it’s a 2-cycle engine as I suspected)
    • There is roughly 5-6 inches from the blade to the outer edge of the dolly wheel on one side. This should be sufficient clearance to run the dolly along the pool coping edge. It will be helpful if the wheel height can be adjusted independently on either side to accommodate uneven surfaces.. but, I didn’t think to ask.
    • The saw includes a water feed, which is great because it should really help cut down on dust.
    • I don’t think it’ll fit in my car, so I’ll need to borrow my parents’ pickup.

    Now, I just need to wait for the weather to cooperate, so I can get this done. Based on the 5-day forecast, I might be waiting awhile..

    6/28: The crappy weather is finally moving out of the area, so the job is back on the calendar for Friday. Fingers crossed.

  • SSN Remediation is here

    Woo-hoo! SSN Remediation happened over the past weekend, and we’re back up and running. I really think this is going to be a big win over the long term.

    On the myUMBC side of things, there wasn’t much I needed to do. Just update my code in two places (one on the uPortal side, and another on the legacy Perl side) to go after the new “HP-ID” instead of the SSN. Then there were a few minor tweaks to some wording and input fields, and that was that.

    This morning we brought all of our services back online, and turned them back loose on the masses. There were a couple hiccups:

    1. It broke PlacePro (I guess the real question here is, what doesn’t break PlacePro). Quick fix: a couple extra lines of code to pass the real SSN to PlacePro, rather than the HP-ID. Since we’re abandoning PlacePro in favor of another vendor, I doubt we’ll undertake a wholesale remediation effort with them; we’ll just cut over later this summer, and then have them wipe their database.I thought that the National Student Clearinghouse stuff would be similarly broken, but it turns out I implemented that totally separately and it appears not to be affected.
    2. I missed a couple places in the code where I was explicitly going after the socialSecurityNumber LDAP attribute, which broke a couple of things in minor ways. Another quick fix.

    Other than that, things have been relatively quiet, and I’m just sitting around here waiting for the axe to fall. Keeping my fingers crossed..