• Some Christmas Photos

    Here are some photos from some recent events:

    These are the Luminaria in front of our house. Luminaria Night had been postponed twice because of crazy bad weather, and the second rain date wasn’t all that great either — it was so windy that the candles kept blowing out. Still, plenty of people put them out, and we went for a walk with John & Donna and Matt & Diet to check out the displays. We visited several neighborhoods, including the historic district, and eventually ran into Scott & Kellyn, and even sang some carols at Jeff & Kristen’s house. That was a fun night out!

    On Thursday we did the CAT Christmas Lights Ride through Bethlehem. These are some photos from one of the must-see stops just at the western edge of our neighborhood. Some guy basically has every square yard of his house and property lit up, well, like a Christmas tree. The owner came out — he remembered us from last year — and talked about his display and how he manages it, and then we moved on.There were many more displays, but non beat this house:

    Finally, some photos of our Christmas visit with my parents. Me and Anne, Mom and Dad, and Chris & Tara with Maureen and a surprise visit from Chris Jr, who flew in on an earlier flight.


  • Waiting For The Snow

    Merry Christmas, everybody!

    We had an awesome Christmas, spread out over several days: there was the CAT Christmas lights bike ride (followed by a get-together with neighbors a bit later) on Thursday evening, then we visited Anne’s mom on Christmas Eve and my parents on Christmas Day, and saw Anne’s brother Joe and family yesterday.

    Now I’m just sitting here, reading some of my Christmas loot and doing a bit of mapping, and waiting for the weather to do …something. Earlier forecasts called for a “wintry mix,” which is basically the seasonal version of the generic “chance of rain/whatever,” but then the forecast changed to a possibility of up to an inch of snow, along with sleet and some freezing rain. I’ve been looking out the window pretty regularly since I got up this morning — nothing: the streets are dry, and though it’s overcast right now, the sun broke through a few times already today. I’m not holding my breath…


  • The End Of An Icon

    Icon, or eyesore? The Glendon Hotel has been an abandoned and falling down building for as long as I can remember, but it was 285 years old and once an important part of the Lehigh Valley. I happened to be riding nearby the day they started demolition, so I took this photo from the towpath, just as the backhoe started doing its work:

    old building on hill
    The Glendon Hotel About To Be Demolished

  • Oh No Not That Again (Part 2 of 2)

    So I was playing with the commuter mapping program the other day after doing some simple maintenance, just finding routes from here to there, and it started bothering me again that I could not route onto the towpath from Sand Island — the network was incorrect, it had no intersection from Main Street onto the path.

    I get my road data from OpenStreetmap, and I know that, in OSM, the trail is properly connected at Sand Island — I fixed that myself years ago, but never went through the rigamarole of updating and rebuilding my network. It didn’t seem worth the work for such a small change. There is another way to make that change though: I could modify my existing network, but that always seemed like it would be even more complicated and difficult than rebuilding from scratch.

    But would it be? The task really boils down to two things: adding a node where I want the new intersection to be, and then splitting the newly intersecting roads in two at the intersection point. Adding a node is easy enough, but splitting a road has a lot of moving parts — each of the two new road segments has to be assigned about 30 attributes, some of which they can inherit directly from the original road, others basically pro-rated from the original road based on the new road segment lengths, and yet others related to connecting the new road segments to the new node. It’s straightforward, but there are a lot of small, tedious calculations to perform and keep track of. Sounds like a job for the computer…

    What I did was write a PostgreSQL function that takes the node and the road, and returns two new road segments. I also wrote a wrapper script to update the network by calling this function. (I decided to just add my new nodes “by hand.”) It mostly works, though in one test case it didn’t split the road exactly where I thought it should (no idea why), and the new network routes like a champ.

    This isn’t a substitute for rebuilding the network: this is a quick fix for a small problem, and the the pro-rated attributes especially are a hack, an approximation; I can easily see situations where pro-rating say, ascent/descent data would be inaccurate. But this is fine for now.


  • Oh No Not That Again (Part 1 of 2)

    I’ve been looking at my Lehigh Valley bike commuter routing project again.

    I decided to update the recommended routes with additions based on some of our recent CAT rides, and found that the line geometries representing the various routes were missing. It’s no biggie, some things didn’t survive those destructive “upgrades” I did a few years ago, and the actual recommendation info is stored in among the road network data anyway.

    But, I still had the old routes as GeoJSON files, and it’s easier to work with them as geometries in their own right than as attributes on the road network, so I added them back into the database. Then I added that new route (Cedar Street, which parallels Union Boulevard but is much quieter), and used it to update the network. Piece of cake!

    I also decided to tackle the problem of updating the network paths themselves, which is not so much a piece of cake. I get the roads from OpenStreetmap, and there are mostly automated tools to build a routing network from OSM road data, and that’s followed by a whole lot of additional data massage to put it in the form I use. But the underlying OSM data isn’t always accurate — roads don’t go where they are supposed to, intersections don’t actually connect, that sort of thing. I would find a lot of this out after building the network, but the task of editing the network, once it’s built, is so onerous that my preferred method has been to fix the issues in OpenStreetmap, then just download the roads and rebuild the whole network from scratch — also onerous, but slightly less so.

    Anyway, I planned to make this a part of the usual site maintenance if this ever went live: maybe once a month I would download the OSM roads, rebuild the network, and then install all my extra stuff, and in between these upgrades I would fix OpenStreetmap whenever I found a problem.

    The last time, and in fact the only time, I ever went through this updating process, was October 2018. I did some serious cleanup on OSM before that, so the map was in pretty good shape, but I got an embarrassing surprise when I demo’ed it to John R (an actual computer professional), who was thinking of commuting to Easton via the towpath. I’d just added offroad path options, and I was eager to show John my new toy, but the program refused to route onto the towpath at Sand Island — there was a missing intersection! A classic case of “broken demo.”

    The need for (and my interest in) the routing program faded not long after that, so, although I cleaned up the offending roads and paths on Sand Island within OpenStreetmap, I never did download any newer road versions. And that’s how it sat for three years, until this week…

    (to be continued)


  • Storm’s A Coming

    Pretty weird weather right now, warm and gray and on the verge of raining. We went for a walk over to the South Side this morning, wearing our raincoats (but we didn’t bring umbrellas), and it was spitting every so often. We were one-for-three on the coffee shops: Zekraft (the new place) is closed Mondays, and so is Lit, and we found this out by trying the doors at each of them, and so that’s how we found ourselves at Deja Brew. Pretty nice place, even if it isn’t usually on our cafe radar… On the way home we stopped at a candy store, and now I’m humming along on caffeine and jelly beans.

    The Weekend

    We had a bit of a blowout on Friday night, at least by our standards: we walked over to Christkindlmarkt with Scott and Kellyn, and grabbed dinner and a few beers afterward at F & A Grog House, the new place where McGrady’s used to be. It’s run by some of the old Which Brew and Porter’s crew, and it has serious bar food and a a great beer selection. We scarfed down our burgers and brews, and then…we walked back over the river to Joe’s Tavern, where we met our neighbor Christine for karaoke. Kellyn and Christine both sang, two songs each in fact, but Anne and I just kicked back and enjoyed the people-watching. The place was packed (we even saw our old friend Maria E), and we didn’t get home until after 1:00.

    Saturday morning should have had a slow start, but we had a CAT ride in the morning, and so we were out of the house by about 9:30. Our ride went through East Allentown, across the Tilghman Street Bridge (still closed for construction, but open to bikes) and through Jordan Park, before returning by way of Luna Bakery. I had myself a good nap in the afternoon, and Sunday was pretty subdued.

    GnuCash, Again

    I’m currently looking over our last year’s finances, and once again I’m making a stab at using GnuCash. This is a great, open-source accounting/money-management program, and I’ve managed to get a lot of benefit out of it before, but every time I’ve used it I ran into the same problem: my use case is pretty simple, but the program is so full of features that my simple project starts suffering from “scope creep,” and in the meantime the program requires a lot of detail-oriented data entry, only some of which is easily automated — it gets tedious if I try to do too much, which is pretty much inevitable once my ambitions kick in. We’ll see what I can get out of it this time. KISS!


  • Some Recent Ride Photos

    Two recent rides, three photos:

    I did a ride along the towpath a week or so ago on a beautiful, sunny fall day. I wasn’t feeling particularly mellow, but there were a few places where I just had to stop and soak in the view. This was one spot, The Chain Dam is usually a pretty dramatic scene, with the old Locktender’s House on the other side of the river, and the hills of Williams Township in the background.

    river flowing over dam
    The Chain Dam
    autumn leaves in sunlight
    Autumn Leaves Along The Lehigh

    A little later on the same ride, I came to this spot just to the east of Freemansburg, and had to stop to take a photo. I took a bunch but this one — the first I took — turned out the best. I think that this is now one of my all-time favorites.

    Another day (Wednesday), another ride: I went out on the towpath with Doug, and we took the Two Rivers Trail to Hackett Park. There’s a pretty good view of the western part of Easton, Wilson Boro, and in the distance the hill (really, the garbage dump, sadly enough) in Williams Township. Still, it’s a great shot of my old neighborhood — I lived a few blocks from that water tower, and was living there when they built it.

    vista of a town across a valley
    Wilson Boro Seen From Hackett Park

  • Out and About

    I started the day listening to GIS podcasts and, thus inspired, I went out to do some OpenStreetMapping. I’m now sitting in Zekraft CafĂ©, the new coffee place on Southside where Sagra Bean used to be, and blogging the adventure by phone. (I got a cup of coffee, and a poached egg with avocado toast.) Nice place, and soon it will be on the map…

    UPDATE: This didn’t publish from my phone until I got home — I think I might need to work on my security settings to get the WP app to work.


  • Two For Two, Times Two

    We had our second Thanksgiving yesterday with Anne’s mom and some family. Turkey & rice soup, carrot soup, some bread and salads, and desserts of course. Lorraine and Ray stopped in, and Anne’s brother Frank came with Heather & Bruce and their son Isaiah (almost two, and this was the first time I’d seen him in real life), and Nick, and Holly with her boyfriend Chris. What a hoot! That little kid never stopped moving while we all hung out, gabbing and watching him do laps around the house.

    (Our “real” Thanksgiving dinner on Thursday was with Lorraine’s daughter Liz and her family, plus Lorraine and Ray. It was a very pleasant and low-key event: too much food, too much dessert, and some fun with the kids and board games afterward. Even the travel — they live outside York — wasn’t all that bad, the roads seemed fairly quiet.)

    Meantime, on the yardwork front… I managed to rake the leaves into the street just before the leaf cleanup a week or so ago, and no one parked on our leaf pile this year, and our leaves got taken — and then I managed to do it again, just before the second cleanup on Friday. This time I was “that guy” whose car was blocking the leaves; I moved the car just in time, and watched the giant leaf vacuum truck go by. I told Anne once how I loved watching the garbage men do their thing when I was little, and on Friday she reminded me about it, and laughed and said I hadn’t changed…

    I got the leaves done just in time too: the first snow fell last night. Luckily it was just a dusting, a warning shot, and it’s mostly gone already. We’re getting ready to ride the towpath in a few minutes.