• All My Dreams Come True

    This morning, after years of procrastination, I got my chipped front tooth fixed. The dentist decided not to use any novocaine, or any anesthetic at all, and it was the most painless bit of dentistry I ever experienced. And now I have my smile back…

    When I got home, the town leaf collector truck was just in the process of cleaning up our leaf pile, which had been sitting there, mocking me, since late October. My day was complete.

    Actually, it was just noon, but the rest of the day was gravy: I rode down to the Museum for a few hours and got home just before dark, then I hung out, played my cello and did a little reading.

    I went to my old boss’s retirement luncheon yesterday, and saw many old friends and co-workers there, which was strangely bittersweet (many were looking much older and less hale, and there was much talk of a vanishing past), and for the rest of the day I was kind of — not somber exactly, but maybe a little bit, maybe a bit nostalgic, a bit reflective, a bit Mais ou sont les neiges d’antan?”

    Today I was back on my game.

  • Wissahickon

    We were at an afternoon/evening holiday party on Saturday where I ran into my friend Renee; she gave me grief about my being AWOL for recent bike rides, and having more excuses than rides lately. She had a Sunday ride planned with Hope at Wissahickon, and after being called out I couldn’t come up with an excuse so I said I’d join them, and so it was decided… I got up early yesterday, and carpooled down with Renee to the Chestnut Hill parking area where we met Hope. We then proceeded to have the most awesome, pleasant ride.

    We got in about 15 hilly miles on the dry and frozen trails — the place drains well, and surface conditions there were primo, about as good as it gets in winter. Hope (who rides there regularly, and actually was there the day before) and Renee were both strong, but we rode sociably, with plenty of stops and bull sessions, and despite my recent reduced fitness it was not the beat-down I was expecting.

    It was a busy day in the park, many other bikers out, and hikers and dog walkers, especially near the trailheads — deeper into the woods and it was just us and the occasional other cyclist.

    Hope, me, Renee and fallen tree at Wissahickon

    That’s us, pretty close to the end of the ride. We were getting back to civilization, and saw this fallen tree that had been cut into pieces near a trailhead. Renee counted rings and estimated it to be 120 years old.

    And then we were done! Once again, I went on a ride and did not regret it — there’s a lesson in there somewhere!

  • WTF, Facebook?

    I’ve been getting more and more disenchanted with Facebook lately, as it seems to be getting less useful and more intrusive as time passes. The kicker was when I was talking, in the real world, about a product with someone, then later got ads for that product when I clicked on a FB page — coincidence? (Granted, this may have been Google’s work…)  Since I also found myself acting like a Facebook addict with it on my phone, or maybe more like some Pavlov dog, obsessively checking every notification (which in the meantime were becoming less relevant — so-and-so was live, or added to her story!), I decided to quit cold turkey. I logged out of the Facebook app on my phone, did the same for  Facebook Messenger, and removed both from my home screen so I wouldn’t be tempted. Life started getting better…

    I also found myself around the same time, ticked off by a peripheral friend who got into a political comment war (on a news page) with someone and, seeing that I was a mutual friend of that person, attempted to drag me into it. (The worst part of it is that my peripheral friend was basically right and the other person really is an ass, but this was straight up cyberbullying as far as I was concerned.) Unfriend. Unfriend them both! And that’s exactly what I did — then I went through my friend list and unfriended another 50 people, and did another 40 the next day. (There were people in there who had passed away — that was tough to do, but necessary — and  people who I know but don’t particularly like or communicate with, and many I didn’t even recognize.) I also removed myself from a bunch of groups. Suddenly FB seemed a lot more manageable, and life started looking even better. Until…

    We were out the other night, and I happened to mention FB and how I had logged out, when all of a sudden I started getting Facebook push notifications again! This time I’m sure it was a coincidence: the app, which I had not actually removed from my phone, got updated, and probably logged back in on its own afterward. But: Zombies! Facebook push notification zombies! I un-installed the app, and also Messenger.

    So now I went on FB on my laptop, and saw what these notification actually were — they had nothing to do with me or my interests; they were basically clickbaity come-on’s. It’s almost like every time I tried to push them away, Facebook ramped up their desperate, annoying attempts to stay in my face.

    This may hurt me in the end, since I’m sure there’s FB stock buried somewhere or other among our mutual funds, but I can’t help feeling a bit of schadenfreude over their recent, and no doubt well-deserved, stock slump.

  • Pastorale

    Kind of a mellow day: I got up and continued learning GNUCash while sampling some experimental croissants Anne made, got some easy chores done, dishes and laundry and so on, then rode over to volunteer at the Museum for a few hours — I got home just at dark. Finished some more chores, played my cello for a bit, and now I am back at the computer, listening to Polish Prog Rock over the internet. A nice day, a mellow day. It’s the simple things…

  • Updates

    So, remember back in May, when I had that hissy fit over embedded Garmin rides? Well, I happened to be visiting my other blog, where I noticed that a Garmin frame was actually displayed correctly. WTF? I checked some posts here, where I had ride posted, and sure enough, there they were — everything was as it should  be. I’m not sure what happened to make them work, though there have been several updates to Firefox since May, and I also changed my browser’s cookie policy recently. Either of those might have fixed the frame problem, or both working together, or maybe it was even an update by Garmin that did it. However it might have happened, the righteous justification for my most recent GIS project just evaporated. Now I’ll have to continue just because it’s fun…

    Speaking of Python projects, I went back and added a dialog box to my FreeCAD Re-Entrant Throat script, and got it running today. There’s no error checking (yet), but it works. So that’s another project that’s suddenly, perilously, close to ending.

    UPDATE 2018-12-05: I added the input error checking (non-negative values, some constraints on design parameters based on other parameters) bringing up an error alert and looping back to the input dialog until all errors are fixed, before running the calculation code. Works great, and I had a lot of fun playing with it until I realized that RET’s are kinda boring…

  • The Year in Free Fall

    Well look at that, it’s December already!

    Listening: David Bowie’s “Fame” is on Radio Paradise.

    Not much is going on, but I thought I’d check in anyway… It’s been rainy and cold the past few days. We kegged our latest beer today, and we were going to brew today, but since we do our brewing outside these days (where it was, you know, raining), we skipped that part. (By the way, that new Roggenbier has quite a kick: the samples we took while kegging actually left us puzzled.)

    The GPX project is somewhat on hold right now, as I’ve gone into several other obsessions: I ran across some python scripts to build an interface, and I got them working. Excelsior! They were part of that Re-Entrant Throat Calculator port to FreeCAD I was playing with a while back. I may play with that a little more, it was fun to mess with it again.

    I’m also having more fun than seems appropriate, massaging our budgeting and financial data with Postgresql and JasperSoft Studio. I downloaded this past year’s banking transactions (think ATM and debit card purchase records), put them into a table and, deciphering each transaction description, sorted them into various categories. I then put them into a spreadsheet to help with planning next year’s budget, and I also broke them down into various Jasper Reports graphs and charts — I’m not sure JasperSoft Studio is all that great but I do like seeing what I can make of my data.

    By the way, this is what I wrote ten years ago.

  • Pay Dirt

    For the past few weeks, I’ve been in a sort of dry spell when it comes to books; everything I’ve picked lately up has ranged from unsatisfying (Neil Gaiman’s Norse Mythology) to downright unpleasant (The Complete Works of H.P. Lovecraft). That all changed with today’s trip to the library, where I found not one but four intriguing reads:

    Ghost Stories of the Lehigh Valley, by Charles J. Adams III and David J. Seibold. This is probably the only real B-lister in the lot, but it’s still not that bad, and full of local lore.

    Professional WordPress: Design and Development, by Brad Williams, David Damstra, and Hal Stern. I’ve read a bunch of beginner books on using WordPress; this one delves into the WordPress architecture and underlying software.

    Medieval Europe, by Chris Wickham. Medieval history is not new territory for me, but the author here makes it new by looking at it from a “structural,” maybe even a Marxist analytical viewpoint, tracing the economic, social and cultural underpinnings of medieval society, including the world lived in by peasants, and women, and ordinary people as well as the usual knights and kings.

    Weapons of Math Destruction: How Big Data Increases Inequality and Threatens Democracy, by Cathy O’Neil. Written “from the inside” by a mathematician and former Big Data professional, the title basically says it all.


  • Back on the Python Train

    I’ve been doing a bit of experimenting with FIT files, and C and ogr2ogr and… I’ve decided to use Python for my latest GIS project.

    I was able to extract some (but not all) of the data I need from the fit file using GPSBabel and, in an unwieldy process, send it as a CSV to PostGIS via ogr2ogr, and do the final processing within the database. What GPSBabel did not get did not get me was the lap info — I’d need to write some kind of program to extract it myself , and any real processing I’d need to do — aggregating my track points into a line for example, or timestamps and GPS positions into average speed — seemed more suitable for doing in a program anyway.

    Meanwhile, I had downloaded the ANT/FIT SDK, and it contained a C library as well as usage examples. These were all written to be a part of some Windows-based IDE’s build process, but they were easy enough to put into Makefile format and get running and, by modifying and re-writing the examples, I managed to extract all the necessary data from the FIT file. The next steps were to process and aggregate the data into summary form, and (using OGR libraries) to add the summarized activity data as a record into my database.

    I did some Googling for advice on how to go about this, but I got few hits for doing it in C and many for Python: basically there’s a library for reading FIT files, and multiple libraries each for processing geometry data and connecting to PostGIS, and the code for my first attempt came to about two dozen lines. It feels slow, but I noticed that my C program also took some time to read and process the points in the file — the Python version isn’t really slower in comparison, and writing the code was soooo easy that using Python was worth it for that reason alone.

    I need to finish my little piece of code, then I can use it on my machine as a standalone program. The next step after that is to find out how to use it from a website — there are several ways, and they all seem easy enough — and build a front end to access my activity data. Knock on wood, but the worst of the learning curve is over.

  • A Story

    We went out yesterday to the Allentown Farmer’s Market, and on the way we stopped at Syb’s Deli for lunch. We sat near the window, and Anne noticed a cute little birdhouse, built to look like the deli, just outside on a telephone pole. (I didn’t see it until she pointed it out.) We asked the waitress about it, and she said they had no idea who put it up — one day it was just there. There were three other little birdhouses that also appeared in the neighborhood at the same time, she said, but these didn’t look like the Syb’s one or any local buildings: they were undecorated, except each of them had “eat the rich” written on it. Here’s a photo of the one outside Syb’s:

    syb's deli birdhouse
    Syb’s Deli Birdhouse

    We got a bunch of other stuff done yesterday, and then met Judy and Erika, at Stoke in Easton, to plan our Thanksgiving dinner. Today I raked the leaves; it’s cold and windy, and it even snowed a bit this morning, so I figured it was the perfect day for it. Later this afternoon Anne’s quartet will be doing a “house concert” at Jeff and Kristen’s, then we might go out for drinks after dinner, to a new place — new to us, anyway — down by Sand Island, called Artisan.

  • Getting The Band Back Together

    Well, I did it — I started taking cello lessons again. I was flirting with this for a while, but only made the decision last week, and I called my old teacher over the weekend. She’s is no longer taking students, but she did have an alternate for me, a woman named Marge who teaches at Twin Rivers Music in Easton. (As a former NJ resident, and former Easton resident, I’m going to cringe every time I hear that name.) Today was my first lesson.

    Despite its unfortunate name, Two – er, Twin Rivers is pretty legit: music and instruments on the sales floor, studios in the back; it was busy, and bigger than I expected, and my new teacher seems really pleasant. We talked a bit about my goals, my reason for wanting to play cello — basically so I can play for fun, with Anne and others — and she explained her teaching approach and how it would address those goals. In terms of playing? I’m not exactly starting over, but the situation is pretty close to that: I picked things up today about halfway through my original first lesson book.