Source: fxva.com
In this post, I start in on repairing my badly deteriorated asphalt driveway.
In a nutshell: I want to patch some badly deteriorated areas in my asphalt driveway. My locally-available options for doing that boil down to using an asphalt-based “cold patch” that may or may not cure fully, but will remain flexible when driven over, and is relatively inexpensive. Or, alternatively, using a cement-based or water-curing material, which will cure rapidly to a hard (but potentially brittle) state, and costs somewhat to considerably more.
None of which matters until I get the areas completely cleaned up and ready to be patched. Which is probably where most of the work is in this task.
Sometimes I get into a task, only to spend a lot of time wishing I hadn’t. Where I hear myself thinking ” … should have left well-enough alone” … ” … the more I work, the worse it looks.”
So it goes for me, fixing my driveway.
This is going to take a while. This part is mostly just figuring out where to start.
Scroll to the end to see my first attempt: Lowe’s QPR cold patch over paver base filler.
This section is intended to be everything I need to know about asphalt patching, but never wanted to ask.
But first: ass-fault or ash-fault? I say ass-fault, but ash-fault is a common pronunciation of this word, based on what I hear on YouTube. Maybe that pronunciation developed because ass-fault sounds vulgar?
In any case, I cannot see the mischievous second “h” in asphalt. Presumably it’s hanging out with the third “i” in mischievous. So it’s ass-fault to me.
Fact 1: There are many different types of asphalt damage, each of which has its own specialized solution. The stuff that will fix big cracks won’t fix small cracks, and vice-versa. The stuff designed to seal the surface (paint-layer deep or skim-coat deep) won’t help with existing structural defects in the pavement.
You can get by with merely filling (skim-coating) the cracks in alligatored pavement only if the pavement is otherwise sound. But once it gets to the point of having a distorted pavement surface and/or chunks missing here and there, you ain’t gonna fix that with any pour-over-and-spread-out stuff.
And then there are structural problems, which I’ll define as occurring any time the asphalt surface has moved, relative to where it was originally. That includes anything from open potholes to what I have, depressions in the pavement.
Fixing outright through-the-pavement potholes is its own area. You can fill deep holes with gravel, but only angular gravel, not pea gravel or other rounded stone. Then cap with cold patch.
I don’t want to make it out like it’s rocket surgery. But any idea of “we just spread magic goop over the surface, let it dry, and all is fixed” — that immediately goes out the window.
A quick fix is pure fantasy, once pavement has deteriorated to the extent that mine has. That’s really the only clear point. This may involve a lot of work and several different repair techniques.
Aside 1: Why not replace it? The pavement is badly enough messed up, over a large enough area, to warrant wholesale replacement of a large (e.g., 150 square foot) section. Cost aside, in my case, I don’t want to do a top-notch professional repair that replacement implies, because this house isn’t going to be here very long. It will be torn down and replaced by something bigger when we sell it, just another part of the “tear-down boom” in Vienna VA.
As to the cost? I have no idea what it would cost to have 150 square feet of asphalt torn up and replaced with hot asphalt, by a pro. That said, for the more expensive DIY patch option (Aquaphalt), the roughly $130 per cubic foot cost rapidly adds up on large project. (By contrast, both Lowes and Home Depot sell more traditional cold patches for roughly $30-$45 a cubic foot or so.)
Aside 2: In my case, why not just tear (some of) it out entirely, rather than fix it, and replace with (e.g.) flower beds? Not a bad concept, but this area is quite flat, and adjacent to my house, so I think I’m better off leaving it all paved. But I can see where getting rid of pavement would be the better solution in other places or contexts.
Fact 2: For a D-I-Y repair of a large area, we’re talking “cold patch” asphalt repair. Roads are made from hot asphalt. Professionals may do asphalt repairs using hot asphalt.
For a DIY repair, by contrast, I need something I can buy in a bag or bucket at the hardware store. That something is termed cold patch, or maybe cold asphalt patch, or maybe cold-patch asphalt. You buy a bag (or bags) of it, pour it into place, tamp it down (plus or minus driving over it), and let it cure and harden. When you’re done, it looks like asphalt.
Fact 3: Do I have to dig up the existing pavement? Some types of cold patch — say, Sakrete carried by Home Depot — want to be put in a hole cut through the existing pavement. Sakrete clearly states that its cold patch material must be contained by the sides of the hole. Unstated, to me the implication is that if not, it will spread (squish) in use.
Removing the old pavement and installing a full-thickness asphalt patch is undoubtedly a technically superior approach. Obviously better from an engineering standpoint. But it ain’t gonna happen here. Not with this much pavement. Not by hand, with a pickaxe and shovel.
By contrast, QPR (Lowe’s) seems to imply that it can be used to patch on top of existing asphalt. At least, the three-step directions from the manufacturer seem to imply it. I’ve found one apparently satisfied YouTuber who filled a driveway divot with that technique, using QPR.
That’s the direction I’m headed.
Fact 3.5: Everybody says the patch must tie into undamaged pavement. Whether you remove the deteriorated pavement, or patch on top of it, everybody agrees that the edges of the hole/patch need to be anchored in sound pavement. I’m not exactly sure why, but that seems reasonable to me.
Fact 4: Cold patch cure time varies hugely by type of patching material. On one end is Aquaphalt, a product that is activated by water and hardens completely in a reported 15 minutes. At the other end is the stuff sold by Lowe’s (QPR), which, even under ideal circumstances, may have a tarry surface for days, and may take months before cured to full hardness throughout. E.g., instructions say to wait on-order-of three months before seal-coating over it.
And just to keep it interesting, there are reports of stuff that never cures. Or, at least, reports of people who gave up and shoveled up an attempted asphalt patch when the material they used did not cure to their satisfaction. At this point, I have no idea whether that might be due to user error, or whether you can get a “bad” batch of cold patch that will not, in fact, cure, even if used correctly.
Finally, it’s not entirely clear what “cured” means in this context. The traditional cold patch mixes (i.e., not Aquaphalt) apparently cure from the outside in, so curing occurs in stages. At some other point, the surface becomes dry to the touch and can be driven over, but if you turn your wheels while stopped on it, it’ll tear it up. At some point, the surface is hard and non-oily, but the interior remains somewhat pliable. And so on.
What I’m saying is that for traditional cold-patch mixes (not Aquaphalt), there is not necessarily any point at which you can say that it’s cured, period. And whatever your endpoint is, it could take a while (as in months) to get there.
Fact 5: Cold patch cost varies widely. The rapid-curing Aquaphalt runs about $130 a cubic foot. At the other end is the Sakrete from Home Depot, and QPR from Lowe’s, which seem to run around $30 to $45 a cubic foot.
And gravel, of the sort which might be recommended for filling holes prior to capping them with cold patch, runs around $13 a cubic foot, per the Home Depot price per bag.
6: Can you patch in layers, patch-over-patch? I don’t know. For a fairly extensive area like this, I’d like to be able to start in some small area, then expand when possible. Putting aside whether or not that’s advisable, it’s not clear that you can do this and expect the patch to succeed. The key issue for me is whether you can build the patch up in layers, or whether you want to get to the finished surface of the patched roadway in a single go.
Sakrete advertises that you can lay hot asphalt right overtop their material. All of them (in various formulations) suggest compacting the cold patch material with every inch of depth. But nobody just flat tells me that you can lay successive 1″ deep patches over one another, letting each layer cure before adding the next. I think that’s Just Not Done. Possibly for a good reason.
For dealing with the big areas of unsound, alligatored pavement, using stuff I can buy locally, my options seem to shape up like this.
More systematically, if I look at all the products that are in stock at my three local hardware stores (Home Depot, Lowe’s, Ace), and tabulate the type of product and rating, it looks like this:
Now the picture snaps into a fairly clear focus. You have two basic options: Cement-based/water-cure patches, and asphalt-based or apply-in-all-weather patches.
The cement-based/water-cure patches cost more, but they get higher ratings, and most importantly, have far fewer “thumbs down” one-star ratings. Near as I can tell, that’s due almost entirely to the fact that the cement based or water cure patches cure almost immediately, versus the long curing time of the asphalt-based products. Most of those one-star ratings for asphalt-based products were complaints that the product either never cured, or took too long to cure. Secondarily, they were complaints that the top surface remained soft enough to scar (with turning car tires, say) after curing.
Of the cement-based products, the Rapid-Set from Home Depot seems to check all the boxes. It’s highly rated, it’s reasonably cheap, and needs no tamping. You basically mix it up and trowel it in like cement. And it comes in bags, like cement, so there’s no stack of plastic buckets to toss out when I’m done.
In fact, based on the pictures on the Home Depot website, I’m pretty sure that’s concrete with black colorant added. And the bag says it’s fiber-reinforced concrete. Here’s the manufacturer’s picture of the asphalt patch being applied:
Source: Home Depot
Yeah, that’s concrete.
And, as a bonus, there’s a separate product (Rapid Set Asphalt Resurfacer), twice as expensive per pound, that claims it can be applied in layers as thin as 1/8″. So, plausibly, I could feather the edges of my patches with that.
I note, however, that the Aquaphalt water-cured product must be something other that concrete, because you’re supposed to tamp it in. The products that are colored concrete don’t seem to require tamping down.
At this point, I wonder if I might be just as well off by buying bagged concrete and black concrete dye. I note that the Sakrete fiber-reinforced high-strength concrete is less than $7 for 50 pounds. A bottle of dye costs $10, and will dye at least one bag of concrete. (But you only have to dye the very top layer, so I would only need a few bottles of dye).
Maybe the cheapest and most durable fix is just to fill the defects in my asphalt driveway with concrete. In the end, I’m going to spread seal coating over the entire thing anyway. It really won’t much matter if the color of the concrete doesn’t match the color of the existing asphalt.
To cut to the chase, several smaller ones. That’s mostly because one big patch, across all that alligatored pavement, is more than I can reasonably do. So I’m going to patch this piecemeal.
One argument against one big patch is the amount of material required. Bringing the entire damaged pavement area up to level would take something like 60 bags or buckets of cold patch. Those bags and buckets are 50 to 60 pounds apiece. Cost aside, that just a lot of material to move around.
A second argument is that one big patch would mean I’d have to walk on the surface of the patch more-or-less right away. So if the compound remains tarry on top for a while, that’s going to be a mess. I’d rather do smaller areas, so I can walk around them as they cure.
If they cure.
For a third thing, I’m not sure this is going to work at all, so I’d like to start small, if possible. Or, at least, at some scale well below the roughly 150 square feet that the alligatored pavement encompasses.
After looking at my driveway for a few days, particularly during today’s rain, I’ve decided that hydrology conquers all. If the rain doesn’t run off it, I’m eventually going to have a bigger problem anyway. This means I’m going to focus on filling in the puddles first, with the idea of getting the surface to drain.
If nothing else, a puddle with an alligatored-asphalt bottom effectively injects water under the pavement. That’s an unambiguously bad thing. So big puddles have to go, one way or the other.
I’m going to start with the deepest puddle. And stop when I’m tired of messing with this.
Aside from “will it cure up”, the only big unknown is the extent to which I can stack patches. Once I settle on a puddle, can I fill it halfway with cold patch, then come back months later and finish it to level? (Assuming no layer is thinner than, say, half an inch). Or, once I take on a puddle, do I need to fill that from the bottom of the depression up to where I want the repaired road level to be?
I found no answer to this on the internet, which strongly suggests to me that nobody even thinks about doing this in layers. You should compact it in one- or two-inch layers (lifts). But then keep on going, in one session, until you get it as thick as you need. That’s how I interpret what I’m (not) seeing. Near as I can tell, nobody suggests putting this on in (say) 1″ thick layers, and allowing those to cure, until you reach the desired height.
This fill-the-puddles approach violates the rule that the patch should tie into undamaged pavement. The puddles themselves are surrounded with alligatored pavement. But if I cover all of that, I’m back to putting one huge patch over the entire area.
So I will worry about what to do with the alligatored margins of those puddle holes at a later step.
Near as I can tell, dealing with old, worn-out asphalt is like dealing with old chipping paint. All the work is in the surface prep. Most YouTube videos on this topic either start with pavement nicer than mine, or gloss over the work required for the surface prep.
At this point, I’ve cleaned the surface of the driveway about as much as I care to. I’ve shoveled off the plants with a sharpened cement shovel. Hosed off the surface a few times. Used a weed-whacker on the residual plants. Swept. Picked up loose rocks. Used a broom-squeegee to move silt and mud out of the deepest parts.
When the puddle pictured above dries, I’m going to place (likely) bags of QPR (from Lowes) in the depression, one after another. Based on my calculation, three ought to fill that depression right up to where the water fills it in a hard rain.
Then I’ll leave that to cure. And see what happens next.
Alternatively, there’s a lot to be said for concrete. So I might be better off opting for some mix of filling the puddles with standard fiber-reinforced concrete, and topping that with the Rapid-Set asphalt patch. Which is just some variation of high-strength fiber-reinforced concrete with black dye added.
Given the length, age, and condition of the driveway, I could make a second career out of trying to fix all of its faults. But I have to start somewhere. And stop at some point.
Either way, I’m going to see if this no-digging approach will solve my problem. That is, putting a thin layer of some sort of cold patch, in an area of depressed, most-clean, badly alligatored pavement. Three bags of QPR from Lowe’s ought to cost around $54 and weigh about 150 pounds. Three bags of Rapid Set from Home Depot would cost $75 and weigh the same.
Either way, that’s a nice size to test all this out and see how well it works for me.
If I really screw it up, I can always call in a pro, get it all torn out, and have it fixed correctly.
This morning I decided to test QPR cold-patch on a puddle/hole in the back portion of my driveway.
I’d say it turned out well. If it will stay put and cure, this will do.
Above, that was a shallow depression in the asphalt, this morning. Now it’s a level asphalt patch, using Lowe’s QPR asphalt patch placed over a paver-base filler. Like so:
After sleeping on this problem, I realized the following:
No to concrete. Thin layers of concrete-based products, over asphalt, would not work well. Asphalt is slightly flexible, concrete is not. That’s a recipe for having the concrete crumble when driven over. Further, concrete shrinks as it dries, which would tend to break the bond with the underlying asphalt. As a pothole-filler, concrete-based products make sense. As a surface patch, on top of existing asphalt, they do not.
No to thick layers of asphalt. The big unknown for the asphalt products is cure time. (Or, worst case, whether or not they will eventually cure.) I figure that, if nothing else, the thicker the layer of asphalt cold patch, the longer it will take to cure. (My vague understanding is that they cure based on exposure to the air, so at the very least, I don’t want a three-inch-thick surface-laid layer of asphalt cold-patch.)
Compacted paver base as hole filler. Because I want a thin patch, but I have some deep holes, I decided to fill my test hole in two parts. After sweeping the existing asphalt, I filled the hole with paver base to within an inch of being level with the surrounding pavement. (Paver base is a mix of sand and gravel that is made to be compacted to a firm base, to support weight.) I then shoveled, raked, and swept that into just the shape I wanted. I used a straightedge across the hole to check the height. Then I compacted it with a tamper.
I’m counting on the existing cracks in the pavement to form a natural drain at the bottom of the hole. Any water that works its way below the patch will drain away, instead of puddling (and freezing) and popping the patch off. At least, that’s my theory.
A final advantage of this approach is that you don’t need to have the bottom of the hole clean, just the edges. As long as there’s no loose or compressible material, just bury the silt and such in the bottom of the hole with paver base (or crushed rock, or whatever you are using to fill the hole).
In hindsight, the Lowe’s paver base had larger gravel than I would have liked. I may switch to the Home Depot alternative before I do the next hole.
Cap with an inch of QPR cold patch. Aim for a uniform layer of QPR that covers the paver base and extends beyond it to make contact with the old asphalt. The hope is that a thin, uniform layer of the stuff will cure quicker and more surely than a thick layer of it. I’d guess that the QPR cold patch contacts the old asphalt in a band about six inches wide, all around the rim of the patch. My hope is that this is enough contact area to keep the patch glued in place.
The QPR cold-patch asphalt exceeded my expectations in many ways. After reading all the horror stories in various comment sections, I thought I was in for a real sh#t show. Instead — perhaps owing to my ability to follow directions — it was a pleasant and compliant material to work with.
First, Lowe’s had a fresh pallet of nice, clean bags of it, so there was no mess transporting it. Second, it spreads well and did not stick to my tools. Third, it’s easy to know when you’ve tamped it enough, because a) the sound of the tamper changes from a muffled thud — like pounding on dirt — to a “bang”, as if you were pounding on pavement, and b) the feel of the tamper changes from a soft landing to a hard landing. All told, you have more than enough feedback to know when you’ve tamped enough, as long as you pay attention to it.
My sole advice would be to take your time tamping. It takes a fair bit of pounding to reach the point where the patch “pings” all over when you pound it. You want no dead spots. Angle the tamper as you tamp the edges.
In this use, QPR seems to spread naturally to an edge thickness of around half-an-inch. I’ve read the same in comments on the Lowe’s website, so I don’t think that’s anything unique about my approach. This, despite doing my best to feather the edge by angling the tamper as I tamped the edge. I’ve read comments where individuals then take tar-type (melt-able) crack filler and go around the edge of the patch with that, to feather the edge more finely down to the level of the rest of the pavement.
Finally, I did as suggested and ran over the patch with my car, after first covering the patch with thin plywood. I learned that a) yep, that works, it was definitely flatter after that, b) you really need a piece of plywood that can cover the whole patch and once, c) too small a piece will leave a mark in the patch where the edge of the plywood hits, and d) you can just pound out most of that mark with a tamper.
I tried walking on it, and it’s already strong enough for that. But I suspect that if I walked on the very edges of the patch, they’d move. (Unsurprising, as it has had no time to set, at all). I’m just going to leave it alone now and see how it does. The surface remains just slightly tacky. Again, unsurprising, as it’s had all of about 15 minutes to cure.
This is never going to look perfect, but it already looks a lot better than the puddle it replaces. All-in-all, for less than $25 in materials, and having to buy a new tool (the tamper), this looks like an adequate asphalt patch.
Will it cure? Will it last? All I can do is wait and see. I’m tempted to dive right into the main repair. But maybe I’ll see how the test patch looks a week from now, before I proceed further.
So far, so good.
Above, that’s a plot of the day of the year on which Fall first frost occurred, at Dulles Airport, VA, for the years between 1965 and 2022 (ish).
In theory, that’s the same data as this plot, that I did some time ago:
The interesting thing is that I ran the first plot above using the computer language R. The second plot came from analysis of the same NOAA data, using SAS (then dumped out to Excel for plotting).
Two days ago, I knew nothing about R. But as it turns out, once you learn the quirks of the language, R is pretty understandable for an old-school SAS programmer. Just a few (maybe four) hours, spread over two days, and I’m up and running in R.
The proximate benefit is that I can cancel my $3400 annual license for SAS. Or, more to the point, I can cancel that without feeling that I have totally abandoned all ability to do statistical analyses, beyond what can be done in Excel. And cut myself off from my entire prior life as a health care data analyst.
The quote is from Yogi Berra.
At some level, all computer languages designed for data manipulation and statistical analysis do the exact same thing. You sort a file, you select observations out of the file, you do some math on those observations, and you summarize your result in some way.
The logical flow of the R program that I used to create the first graph above is identical to that of the SAS program I had run to create the second graph.
It’s just a question of figuring out the basics of the language. In my case, there were a few stumbling blocks.
First, my computer’s out-of-date. I use Windows 7 on a Toshiba laptop. Microsoft no longer supports Windows 7. Toshiba no longer sells laptops. But I don’t want to change, because the existing setup runs well, particularly for number-crunching.
In order to run R on my computer, I had to do some minor updating of Windows, as directed by the instructions for installing R under Windows, as found on CRAN. That went smoothly, after installing the Universal C runtime update from Microsoft.
To be clear, I avoid mucking about with the Windows operating system, if possible. I’ve had too many bad experiences in the past, where updating Windows had undesirable consequences. But this one — and the one below — were installed without apparent incident.
The next problem is that, natively, the R distribution puts you in the “console” when you run it, which is a combination command-line interpreter/line editor/output file. There’s really nothing you can do in the R console except test the syntax of a single line of code.
You type a line of code. You hit return. It executes. But that’s it. Up-arrow to recall earlier lines of code. Results from what you executed get dumped right into the window where you type your line of code.
You can’t write what I would call “a program”, in the console. Turns out, you need another piece of software to enable you write R programs. So R is the language, but you need something in addition to R itself, to write programs/scripts that run in in R.
To write a program (script) in R, you need a script editor. Of which the common choice is Rstudio, which is an IDE — an integrated development environment. Rstudio gives you a window in which to write programs (the Script Editor), in addition to that original R console window. It then interfaces with your installation of R, and runs your script (program) when you tell it to.
For SAS programmers, its the logical equivalent of … whatever the screenshot below would be called:
The thing in which I write and run programs. I think of it as “SAS”, but it’s not, It’s just the (inter-)face of SAS, to me. It’s software integrated with SAS (the statistical language) that allows me to write and run SAS programs.
So it is with Rstudio. Far as I can tell, having this or some close substitute is not optional, practically speaking. Maybe something like this actually comes with the native R distribution, but if so, it did not pop up and present itself to me.
The most recent versions of Rstudio will not run on Windows 7, but if you keep asking Google, you’ll eventually stumble across a page that has older versions of Rstudio that will run under Windows 7. I use Version 1.0.153 – © 2009-2017 RStudio, Inc, found on this page. Why I arrived at that version, I am no longer entirely sure. Even with that, the instructions pointed me to an October 2019 Windows security update that I had to install (and reboot) before Windows would accept the Rstudio package to be installed.
Once you have R and Rstudio installed on your machine, you can actually write a multi-line program in R, run it, debug it, and save it.
To learn something, I think it’s helpful to have a task you actually want to do. In this case, I have an old analysis of first frost dates, that I had run in SAS. That’s exactly the sort of thing I’d like to be able to run in R. So let me replicate that.
A few points of interest for SAS programmers:
So, here’s an R program to read in NOAA weather data, as stored on my hard drive, and plot the Fall first-frost dates. (Note that line-wraps got shortened when copied to the format below, causing some lines below to wrap, when they would not have in the R script itself.)
# This is an R program, termed an R script. # It is being composed in the R script editor in Rstudio # Near as I can tell, the R distribution itself only provides a command # line interpreter, e.g., a line editor. # You need a script editor to be able to write a program aka script. # Input data set is from NOAA, I think. # It has daily temperature data from Dulles Airport going back to part-year 1963-ish x <- read.csv("C://Direct Research Core//GARDEN//First frost date trend//3139732.csv", header = TRUE, sep=",") str(x) # The code above creates the data frame x (think, SAS file or SAS temporary file X, from the raw .csv input file ; # Because the .csv has the column names (variable names) on the first row, # this imports the data, using those names, via the header clause ; # note the awkward reference to the file as stored under Windows on my computer # every "\" in the actual file path/name needs to be overwritten with "//". # A minor annoyance. # Also note that R IS CASE SENSITIVE, so if a variable name was given as all caps, # that is how you must refer to that variable in the code ; # Next, a crude PROC CONTENTS ; # This outputs a list of variables and their attributes to the console ; str(x) # Below, date (read in as character data) is converted to a numeric date value which I call ndate. # That is the equivalent of converting a character string holding a date, to a numeric SAS date ; # Like a SAS date, this then lets you do arithmetic on the date ; x$ndate <- as.Date(x$DATE) x$month <- months(x$ndate) # The funny nomenclature here, X$ndate and x$month is to indicate that I want ; # to create these as new columns in my data frame, as opposed to ... I'm not ; # quite sure what, but if I just named it ndate, I think it would be a vector in # the active work session, in no way connected with the data set (data frame) x # So this isnt like the SAS DATA AAA; SET BBB nomenclature. There, if you # create a variable in normal (non-macro) SAS code, that variable is in # the data set you are creating. You cant do calculations "outside of" # the dataset that you're working on. # But in R, the default is to create a variable in your temporary # workspace. So if you want the variable to be in the new data set # you have to tell R that by prefixing with the dataset (data frame) name. # Next, where SAS or EXcel typically provides a broad array of native functions ; # R is old-school and, even for fairly basic stuff, requires you to read in those ; # functions. In this case, after looking at on-line examples, I want to use # the "aggregate" function in library libridate. I believe that lubridate was # either included with my R distribution, or somehow R seamlessly finds it on the # internet and downloads it # Or something; # Ok, quick test of the data, show average low temp by month, entire dataset ; library(lubridate) bymonth <- aggregate(x$TMIN~month(ndate),data=x,FUN=mean) print(bymonth) # The above is like running ; # PROC SUMMARY DATA = X ; # CLASS MONTH ; * BUT CALCULATED ON THE FLY AS MONTH(NDATE) ; # OUTPUT OUT = BYMONTH MEAN = /AUTONAME ; # RUN ; # PROC PRINT DATA = BYMONTH; # RUN ; # and sure enough, I get mean low temp by month ; # NOTE THAT UPPER and lower MATTERS HERE, unlike SAS ; # So NAME is not the same as name or Name ; # I AM NOT ENTIRELY SURE WHAT THE TABLE THING DOES. THE RESULTS ARE NOWHERE ; # NEAR AS USEFUL AS A PROC FREQ OUTPUT IN SAS. THE DEFAUL HERE SEEMS TO BE ; # TO GIVE YOU A LIST OF ALLTHE VALUES IN THE DATASET. w = table(x$NAME) print(w) W = table(x$TMIN) print(W) # NOW CREATE NEW DATASETS FOR ANALYSIS, # TAKE ONLY THE DAYS AT FREEZING OR BELOW ; # THEN SORT BY DATE ; x2 <- subset(x, TMIN <= 32) x3 <- x2[order(x2$ndate),] # BUT THIS STILL HAS E.G., JANUARY FREEZING DAYS IN IT ; # AS SHOWN BY CALCULATING AND TABULATING THE MONTHS PRESENT ; # TEST BELOW WOULD HAVE VALUE 1 FOR JANUARY AND SO ON ; test = month(x3$ndate) ; W = table(test) print(W) # month is numeric ; # NOW RESTRICT TO MONTHS BETWEEN JULY AND DECEMBER ; x4 <- subset(x3, month(ndate) > 6) x5 <- subset(x4, month(ndate) < 13) # Im sure theres a way to do that in one step but I do not know it yet ; # NOW FIND THE FIRST FROST DATE EACH YEAR AS THE MINIMUM OF THE DATES ; # REMAINING IN THE FILE, AT THIS POINT ; frost <- aggregate(x5$ndate~year(ndate),data=x5,FUN=min) print(frost) str(frost) print(frost$`x5$ndate`) # IF YOU THOUGHT THE NAMING CONVENTIONS WERE AWKWARD, ON THE AGGREGATE STEP ; # THE DEFAULT VARIABLE NAME, OF THE THING THAT HOLDS THE VALUE YOU JUST ; # AGGREGATED, IS FILE$VARNAME. BUT TO REFER TO IT, YOU HAVE TO SURROUND THE # VARNAME OF THAT TYPE WITH LITERALS ; # BELOW, CREATE A "NORMALLY NAMED" VARIABLE IN THE FROST DATASET ; # THEN CHUCK OUT EVERYTHING BEFORE 1964 AS REPRESENTING INCOMPLETE YEARS OF DATA ; frost$ndate = frost$`x5$ndate` frost <- subset(frost, year(ndate) > 1964) # CREATE THE JULIAN DAY, THAT IS 1 TO 365 ; frost$julian_day <- yday(frost$ndate) print(frost$julian_day) median(frost$julian_day) # The latter computes and prints the median to the console ; # answer is 290 ; # Thats October 19, more or less correct plot(year(frost$ndate),frost$julian_day) # FINALLY, TO RUN THIS SCRIPT/PROGRAM, HIGHLIGHT IT, THEN HIT "RUN" AT THE TOP OF THE # SCRIPT EDITOR WINDOW ;
There are a lot of things about R that I find awkward, compared to SAS. But so far, there are no stoppers. What was PROC SORT in SAS is now an order command in R. A SAS PROC SUMMARY statement becomes an aggregate command in R. And so on.
I’m sure I’m going to miss SAS’s automatic treatment of missing values. I’ll probably miss the SAS system of value labels at some point.
But just for messing about with data, R seems to do well enough for my purposes.
After holding (and paying for) my own SAS license for close to 30 years now, I’m finally giving that up.
I had been dreading learning a SAS replacement. I figured I would be floundering around for weeks. But R is intuitive enough, for a long-time SAS user, that it really doesn’t seem like it’s going to be any problem at all to pick up R as a language for data analysis.
It has turned into a cool and rainy spring, here in Northern Virginia.
This post is a hodgepodge:
Hey, my new microwave has an “energy saver” mode. This turns off the display, and so reduces the electricity the microwave uses when sitting idle, the so-called “parasitic draw” or standby energy use.
Conspicuous by its absence, however, is any mention of how much energy this saves. So I put a meter on it. Without energy saver, the parasitic draw is two watts. With energy saver, the parasitic draw is two watts. In other words, energy save reduces standby electricity consumption by less than 1 watt (else the digits on my meter would have changed).
Observation 1: I am old enough that, once upon a time, I thought it odd that every new appliance had a clock, and those clocks were constantly on. Now, having lived with that for decades, my gut reaction to a microwave without a lit clock is “oh no, the microwave is broken”. My brain no longer understands the concept of a working microwave without a clock. No clock showing instantly registers as “oh crap, the microwave is dead”.
Perhaps my brain will adapt. But the easier solution is to ignore the “energy saver” feature, and needlessly burn an additional 9 KWH per year in clock-lighting energy.
Observation 2: There was a time when electronics used tubes, and electronic devices literally had to warm up before they would function. As I recall, for a TV, this would typically take on-order-of 15 seconds or so. The only way to avoid that delay was to use “instant-on” technology, which simply ran electricity through the tubes all the time, to keep the filaments hot. Instant-on devices consumed so much energy in standby mode that this was banned, for new electronics, as part of the Carter administration’s grappling with the fallout from the Arab oil embargoes and the resulting 1970s energy crises.
Observation 3: And yet, now that everything is solid-state (no tubes), you can still find electronics with pretty substantial parasitic draws. Here, I think the worst offenders are computers (where “sleep” mode keeps all the chips hot, versus “hibernate” mode that writes the internal state of the computer to disk, then turns it off), and game consoles (same notion).
For some reason, the Crazy Right got bent out of shape when Microsoft updated its Xbox game console software to make (low-energy) hibernate the default temporary shutdown mode, rather than sleep mode, which consumed 15 watts, continuously, even when the game console appeared to be off (see Post #1696). I have never figured out the logical reason why anything that reduces fuel use is deemed Evil by the nutso right, but that surely seems to be the case.
Observation 4: This energy-saver feature is just one more instance of the all-hype, all-the-time society. The reality is that this microwave has an energy-saver mode that does almost nothing. So the manufacturer simply advertised that it had an energy-saver mode. Full stop. Thus validating the rule-of-thumb that when a key bit of information is missing — in this case, the actual energy savings — that was done on purpose.
The only interesting story here is that this breaks the replacement-purchase rule: Any time you go to replace an item that you really like, you will find that item is no longer being made.
I bought two Ace hardware plastic watering cans somewhere around 15 years ago. They have held up remarkably well (plus or minus one missing rosette, which is probably the result of operator error).
These function well, but are otherwise unremarkable. The Jerrycan-like design is perfect for watering a vegetable garden. (Even when full, you can hold them by the back handle, nozzle-down, for fast, intense watering.)
I had assumed that after all this time, Ace would have changed the can. Just because the Gods of Eternal Change for Change’s Sake would demand it. But no. Ace still sells the exact same plastic 2-gallon watering can. I just bought another one, above, from Ace Hardware.
Only when I got it home did I realize they’d redone the rosette to make it a much slower can, with a much finer, more delicate spray. That’s the old rosette on the left, and the new one on the right, above. This is easily fixed with about a minute of time and a drill/bit.
Like a retiree living in a motor home.
Four weeks ago, I set out to try two different approaches to growing new plants by taking cuttings of old plants: Air layering, and snip-dip-stick. With air layering, you girdle a branch, then pack wet potting soil around the injury, wrap in plastic, and hope that the branch will set new roots in that potting soil. With snip-dip-stick, you snip off a green branch end, dip it in rooting hormone, and stick it in potting soil. Again, in the hope that roots will form.
The good news is that four weeks into it, and almost all the cuttings are still alive. That’s a surprise to me.
The bad news is that none of my cuttings has grown roots yet.
This despite the fact that the internet swore I’d have a humongous root ball on these things after just four weeks.
Note the total absence of roots, above. That said, I potted them up anyway. When you get down to it, sitting in wet potting soil in your own pot is not very different from sitting in wet potting soil with a bunch of other cuttings.
In any case, “four weeks” to have a nicely-rooted cutting now seems wildly optimistic. These things are still basically sticks with leaves on them. But they are most definitely still alive.
So now they are sticks, in their own pots, with leaves on them.
We’ll see how it goes from here. I still have one air-layered branch still attached to the mother plant. I’m leaving that be, for the time being, and maybe at 8 weeks I’ll see some root development there.
I have no interest in learning a new computer language. My brain is full. Anything I learn now requires forgetting something I already know.
In fact, I’ve never had any interest in learning any computer language. But that’s the price of admission if you intend to write computer programs to (e.g.) perform data analysis. I’m an “applications programmer”, that is, a person who uses some sort of higher-level computer language, as opposed to a “systems programmer”, the sort of person who creates and writes a higher-level computer language.
I mean, there are nerds, and then there are nerds. I’m just an applications-programming nerd, not a systems-programming nerd.
Actually, I have exactly $3400 worth of interest in learning a new computer language this year. That’s what the annual license costs, for the program that I’m fluent in — SAS (Statistical Analysis System).
My continued use of SAS — and the annual fee — are holdovers from my years of running my own small business. Back when custom data analysis using SAS was the core of my business, that expense was easily justified. Now it’s just an expensive hobby. I used SAS quite a bit during the pandemic, to track and analyze COVID-19 data. But since that time, I rarely ever boot up the program.
And yet, I can’t quite let it go. After spending most of my life doing data analysis, I just can’t go cold turkey. I’m just not going to feel comfortable without something at my disposal that’s a step up from using Excel.
In terms of open-source freeware for statistical analysis, my options seem to be R or Python. Having taken a brief peek at both, and seen way too many C-like curly brackets {{{ }}} in Python, I downloaded and installed R on my Windows 7 laptop. Eventually, successfully, one Windows tweak required.
This did not preclude downloading Python as well. The clincher is that, when asked, my daughter said R was the better choice if my intended use is statistical analysis. The response was sufficiently terse and on-point that I’m pretty sure it was her genuine opinion, and not the product of an AI.
In any case, that, and running readily under Windows 7, clinched the deal for R. It looked to me as if the latest versions of Python do not run (or run right) under Windows 7. Or getting them to do so was beyond my skill level.
Now I just need to see if I can make R do what I used to make SAS do.
The oddity here is not that I’m learning a new higher-level computer language. It’s that a) I’m 65 years old, b) I’m doing this for $3400 a year and some sense of connection with my professional past.
Old dog. New trick. We’ll see how well it works.
I have a dead microwave. Now it gets to push my buttons. Continue reading Post #1968: Dead microwave.
That is, a few short items on gardening, since it seems as if all I do these days is garden.
These include:
Creeping Charley is a weed, also know as ground ivy. When mature, it forms masses of thin vines (stolons), loosely rooted to the ground. My “puller” is a bow rake paired with a paint roller. It’s crude, but this allowed me to pull masses of Creeping Charlie out of a garden bed that I was preparing, without having to stoop over and pull it by hand. Details are below.
Continue reading Post G24-014: Creeping Charlie puller and other garden items.
I would have gone done a bunch of gardening tasks yesterday morning, were it not for the fact that there was a bunch of guys building a fence in my back yard.
I didn’t invite them. The house across my back fence was torn down a couple of months back. That old house has been replaced by a new, much bigger, house. The builders of that new, much bigger, house are now tearing down the rotting fence between our yards, and replacing it.
It’s their fence. It was falling down. No one will mourn the loss.
But while that work crew is there, I’m not comfortable going out and engaging in a leisure-time activity like gardening.
That said, I can see that to make the post holes, they have a guy with a post-hole digger. A manual post-hole digger, as pictured above.
Unsurprisingly — to me, anyway — he’s having a hard time of it. The look on his face is about the same as the look on mine, when I try to dig holes in that area, using a post-hole digger. It’s a cross between “you’re kidding me, right” and “I have to hack my way through this with a post-hole digger”?
The dirt in that area is packed with roots of every size and description, from 60-year-old-maples to the neighbor’s bamboo. No single tool will do the complete job of making a hole in that. (OK,a utility company truck with a power augur would likely have no trouble. But not much short of that.) I resort to (and dull the edges of) an entire array of tools when I dig there, starting with an axe.
In short, digging a nice neat hole in that location is going to be a total pain.
I do not envy the man his job. I share his pain.
But he powered on through it, I guess, as the fence is now up.
Now that fence is in, I need to plant something that will plausibly block my view of the new, much bigger, house.
I ideally want to plant something that doesn’t require a big hole. Not in that location. And yet isn’t tiny, implying years before it grows adequately to fill the space.
And if the builder plants his side in the meantime, I need to leave an open gap there for sunlight. So I may want to plant nothing. At the least, this argues against buying a big expensive plant for this location.
In any case, I decided to use this odd need — it boils down to wanting a big plant in a small container — as an excuse to try out vegetative propagation to grow some new plants.
Old-school, this would have been stated as “I’m taking some cuttings”. But to me, that doesn’t sound quite macho enough. So vegetative propagation it is.
I’m trying to grow new skip laurels (and some new fig trees) from cuttings. And I’m trying two methods of vegetative propagation: Air layering some branches, and (what I think of as) snip, dip-and-stick on some twigs. I vaguely believe the first is a form of brown-wood propagation, the latter is a form of green-wood propagation. But I am unsure. I’ve never done any of this before, and I have no clue about much of anything yet. Let alone the accepted nomenclature.
Air layering.
With air layering, you intentionally girdle a small branch, hoping to force it to grow roots where you girdled it. You cleanly remove a tube of bark about 1″ long, circling the branch. Scrape the inch of branch to bare wood, optionally dust the wound with Rootone (or equivalent rooting hormone), pack a wad of wet potting soil around the wound. Tightly wrap that wad in a layer of plastic. Finish with a layer of aluminum foil. The plastic is there to retain water. The tin foil, to exclude light.
Note that, implied in all this is the idea of a branch with bark you can easily remove. Likely second-year (possibly later) wood, with brown bark. Likely not first-year green-barked shoots. Thus, as practiced, an example of brown-wood vegetative reproduction.
Why not do this to a big tree limb, and produce yourself a brand-new big tree in one year? I’m not sure. I’m guessing the practical upper limit is set by the imbalance between leaf area and roots. So I’d guess there’s a practical upper limit to how big a branch would survive this to become a new plant. I’d say the norm is to do this on two-year-old wood.
Edit: Upon reflection, that’s probably not the right reason. Seems like leaf area and water transmission area should be in balance on the growing plant, no matter what age or diameter the branch is. Each branch or stem would itself be balanced in this regard. Maybe the limitation on survival is elsewhere, such as the point in time where the branch must survive on its own (new) roots.
In any case, then you wait. Check your wad o’ dirt weekly. Add water as required.
In a month, you’ll have a ball of roots running through that potting soil. So they say.
If all goes well, you then cut the air-layered branch just below the root ball, and hey presto, the branch is now a sapling. Pot it up with TLC for one year, put it in the ground the next.
Snip, dip, and stick.
With snip-dip-stick, you snip off a green branch end, dip the cut end in an inch or so of Rootone (-equivalent) powdered rooting agent, then stick that into a few inches of wet potting soil, in a flower pot. Keep the pot well watered and out of direct sunlight. Reduce to just a leaf or two per snip, so that they don’t dry out.
The theory is that (some of) these snips will grow roots in a month, at which time they can be pulled from the communal flower pot and potted up individually. My dozen or so snips are sharing a north-facing, well-watered, never-in-the-sun flower pot. Easy enough to water one pot.
As with the air-layered plant, they should remain potted up for a year, with TLC, and then should be ready to put in the ground next year.
In the end, these are two different ways to create something to plant next year. I have no clue whether either method will work for me. I’ll know more in a couple of weeks.
Here’s the part that could not believe: Girdling does not kill the branch. The air-layered branches — stripped of their living bark for an inch — appear fine. On both sides of the complete break in the bark.
Really? I always heard that doing this to the trunk of a tree would kill it. And, it will. But I figured that, by analogy, if you did that to a branch of a tree, the branch would necessarily die.
That turns out to be an incorrect analogy. The leaves on the girdled, air-layered branches in my back yard remain green. All the way out to the end of the branch. This is presumably from water transported to the leaves via the pith (inside) of the stem.
Which, in my ignorance, I didn’t realize was a thing. I thought all transport was via the cambium, the growth layer just under the bark. But that’s wrong. At the branch tips, water and nutrients flow from roots to leaves via the branch central pith, and finished products of photosynthesis (starches, sugars, and so on) flow from leaves to roots via the surface cambium layer.
Again, so they say. I skipped biology in school. Seems true, as those air-layered branches appear undisturbed by this approach.
The key point is that the branch won’t die for lack of water, even as you are preparing it for full independence from the mother plant. That’s because you leave the water-distribution vasculature of the branch — the stem pith — intact. Meanwhile, it takes the energy of photosynthesis, nutrients from the tree roots, and uses that to produce new roots, at the break in the outer bark.
At least, that’s the theory. I’m reserving judgment, but this seems like an obviously better approach than snip-dip-stick. I should know, for these plants, in a couple of weeks.
This is a brief anecdote on how yesterday’s laundry morphed into today’s tense, once-a-decade plumbing maintenance task, replacing the water-hammer arresters installed with my clothes washer.
It all started out innocently enough.
In the prior post, I admitted to being a bit slow, at the moment, owing to my under-consumption of stimulants. So, as I was not getting much done yesterday. I decided to do some laundry. That takes up some time and accomplishes something, without being mentally or physically taxing.
For maybe the first half-hour, I enjoyed the far-off sound of the laundry equipment chugging and ticking away. Somehow I feel as if I personally was getting something done, even though the equipment was doing the work.
The catchy, staccato rhythms of the washing machine are so homey and soothing. Put you feet up, cruise the internet, relax. I can’t really start another task because, hey, I’ll have to go tend to the laundry soon. Guilt-free-chill time.
… (Time passes)
It only took me a half an hour to realize that those washing-machine noises were a lot louder than I remembered. And maybe just a bit too rhythmic.
It finally dawns on me that I’m listening to pipe knock from water hammer created by the clothes washer. The rhythmic sound I’m hearing is the result of the cold water valve cycling on and off during the rinse cycle, followed by the cold-water pipes boinging back-and-forth, wherever.
Water hammer is an unambiguously bad thing. A moving column of water (in a pipe, say), has kinetic energy. By law, that energy must go somewhere when the column stops. In a house, it goes into moving the pipes. The more abrupt the stop — such as the closing of a solenoid-driven valve in a washer — the more abrupt the transfer of energy, and the bigger the “hammer” effect (all other things equal). The moving pipes bang into stuff, which is not good in the long run. And it induces wear-and-tear on the washing machine valves.
Water hammer, in home plumbing, unchecked, will eventually break something. If not your water pipe, then your washing machine. That’s what they say, and I believe them. In effect, I’ve been enjoying the pleasant sound of my washing machine beating my water pipes (and itself) to death. Eventually.
Too bad the builder didn’t do a better job with the pipes. I really hate having to pay for other people’s mistakes.
… (Time passes)
Another half-hour, and I realize the water hammer is my fault and needs to be fixed. Plausibly, I’m hearing this now because my water-hammer arresters have finally worn out. Those are more-or-less little shock absorbers for your pipes, and used a captive bit of air and a piston to soak up the force of the water hammer before it bangs your pipes around. Those water hammer arresters have been in place since I had this washer installed about 15 years ago. They are long overdue for replacement.
I need two of these gizmos. One for the hot water hose, one for the cold water hose, feeding the clothes washer.
Source: Home Depot, cited just above.
… (Time passes)
And it only takes another hour for me to figure out that I should replace the washing machine hoses as well. Installed with the water hammer arresters, they are now pushing 15 years old, or about three times their rated safe lifetime. Unlike your garden hose, say, these hoses are under house water pressure constantly. You really don’t want one of those to burst. Which they may do, when they get old.
So now it’s one of those should-be-easy-but-potentially-white-knuckle plumbing repairs.
All the required parts connect together without tools. The hoses, arresters, and valves are put together with fittings similar to what you’d see on a garden hose. But better quality. They all use garden hose thread (GHT), either male (MHT) or female (FHT). (At least they do here, YMMV.)
You tighten them hand-tight*. Maybe give them a small fraction of a turn beyond hand-tight using a weakly-held set of water-pump pliers. Never use a tool to tighten the fitting (the female exterior bit) all the way to tight, as in, can’t move. That’s not how they work, and if you do, you’ll screw them up. That’s what they say and I believe them.
* being careful not to cross thread them on (e.g.) the plastic MHT fittings on the back of the washer. GHT is not like pipe thread. It doesn’t get progressively harder to turn, like pipe thread. Properly aligned, it should turn several full turns with just a light finger grip. It stops when male, gasket, and female meet, not when the threads dictate.
So, about $100 and two fun-filled hardware store trips later, and I have the parts I need.
These, I have laid atop my honored and increasingly venerable Speed Queen washer. Long may she live.
Because I have a non-standard setup, this fix depends on a) the water shutoffs for those pipes working, and b) about half-a-dozen GHT joints coming cleanly apart, after being connected for close to 15 years.
It’s old plumbing. I expect something to go wrong. Perhaps catastrophically wrong. Perhaps not. I just have no clue what, and how serious it will be.
I’m phobic about it, to be honest. Plumbing disasters feature prominently in my literal nightmares.
But today, Cloacina, the Roman goddess of plumbing, smiles upon me. All goes as well as I could hope. Little water is on the floor. Nothing obviously drips. A test load demonstrates that the pipes have gone quiet, at least for the time being.
Cloacina willing, I’ll revisit that no sooner than half-a-decade from now.
It’s a flannel shirt day for sure. Overcast, cold, with occasional showers. Perhaps even an un-tucked flannel shirt day.
So I’m off to a slow start. And I need to get my thoughts together anyhow.
Let me blog my way through a few things. Starting with:
Continue reading Post #1965: Friday/Saturday this-n-that. Part 1: A state of decaffeination