Categories
Uncategorized

milesBiked – A Bar Graph Generator

In a previous post titled Miles Biked (so far)… I talked about generating bar graphs to show how many miles I biked. And in the post before that I suggested you Share Your Code. So this post is the logical conclusion.

You can find milesBiked on Codeberg, a community-led platform that offers Git hosting and other services for free and open source projects. Codeberg is a non-profit organization based in Berlin, Germany, that respects privacy, supports the commons and celebrates creativity.

When I posted about blogNag – A Blog Post Reminder I decided I should try to do more to share the code I write. It’s not amazing, it’s not worthy of praise, but it’s code that works for me, solves a problem, and others might be able to use it to learn from. In the age of AI, LLMs, and “vibe coding” I think this is important.

In a world where so many applications are subscription-based, or the free version has limitation that can only be unlocked by paying, releasing free software and open source software to the world can be seen as an act of resistance… or rebellion, even.

Code given freely is a gift to the world. I expect no remuneration for the code I share. Save it for larger projects with more impact. I donate to a number of larger software projects that I use all the time. Inkscape, OpenSCAD, CryptPad, and others… Tools I use almost daily that have allowed me to escape restrictive commercial software. Send your money where it will help the most.

Right, so I learned a bit about Matplotlib and used my basic Python skills to write about 25 lines of code… but I stand on the shoulders of giants. Those who created Python, who documented it, the Matplotlib authors, and the people who wrote articles, blog posts, forum posts, and tutorials with example code that made it all very easy for me.

Good software isn’t created in a void… and it’s not created by telling a machine what you want your code to do. It’s created by people like you. Let’s all work together to make a better world.

Categories
Uncategorized

Miles Biked (so far)…

I managed to bike over 500 miles in 2024 and I wrote a post about it. In that post I used screen shots from RunGap which is a great mobile app that imports data from the Apple Fitness stats captured by my watch and phone.

I don’t love the screen shot thing so I figured I should work on some code to make my own bar graphs. I used Matplotlib for Python to do the heavy lifting here. Matplotlib is complex and powerful so I really just started by ducking for python bar graph and found a few pages with examples and started there.

Also, I can’t decide if this post is about Bikes or Python, so it will be both.

After riding 600 miles in 2024 and seeing that I barely rode in four of those months (due to weather, travel, being sick, etc) I set a goal of 1,000 miles for 2025. This works out to about 84 miles each month, or just under 3 miles per day. I figured I could ride 5 miles most days, and double that on a weekend day. So even if I just rode weekends and got about 20 miles per weekend I’d be most of the way there.

I should mention that years ago I would have never imagined trying to bike 1,000 miles in a year. But I guess it’s not too different from walking. I think I did just a few rides in 2024 that were over 10 miles but that’s a regular thing for me now on weekend days.

Here’s my progress for 2025 so far – 569.58 miles. You’ll see April was a bit lower, which was due to work travel. I did also travel in May but I worked overtime to make up for it before and after my trip. I don’t have any other travel planned for this year, and hopefully I can avoid injuries and sickness. I should easily hit 600 before the end of the month, which is the halfway point for the year so… on track!

There’s a lot more data in RunGap, and I can access it via the SQLite database the app uses, so I may try to pull data directly from that, and maybe add in some graphs for other things, like hours biked, etc. And yes, many of the miles during the colder (or rainy) months were indoors on the trainer (Dana’s bike!) but I definitely prefer to get outside and ride when I can.

So here’s to more miles on the bike and more lines of code to create graphs!

See Also: milesBiked – A Bar Graph Generator

Categories
Uncategorized

Milwaukee Critical Mass Web Site

Milwaukee Critical Mass Web Site

Disclaimer: I used to build web sites, by writing code… by hand. I started in 1995 and probably stopped around 2012 or so.

Hey, Milwaukee Critical Mass (bike riding event) has a web site at mkecriticalmass.com and that’s awesome! I’m going to (lightly) critique a few things but before I do I’d like to say that this is all my own personal opinion. I used to be a community organizer, I used to be a volunteer, I know that when you take on extra unpaid work you do the best you can with the time and resources available. I do not expect perfection, and anything I say can be completely ignored. On with the show!

I am extremely grateful that Milwaukee Critical Mass has a web site. It’s 2025 and now more than ever we need web sites that convey information and don’t lock it up behind a corporate wall of accounts and logins and having to use some terrible platform just to get basic information. We built the web to provide open and public sharing of information and we should never forget that.

I have no issue at all with the (lack of) design of the web site. It provides information. It’s simple HTML! It does use Milligram
“A minimalist CSS framework” but I have no idea why as it seems like it’s not needed. But maybe the site will change over time and require it?

You’ll notice the screen shot above shows a date in April, yet I captured it on May 30th, which was the date of the May ride, so someone forgot to update the web site. (It’s updated now, for the June ride.)

If you don’t know where Red Arrow Park is in Milwaukee can you find it? Go on, try right now! I was able to but not without going to another web site and searching for it. Missed opportunity there to just provide the address, cross streets, landmarks, etc.

There are links to Twitter, Instagram, and Facebook. I can’t see any of the Twitter posts because I deleted my account a few years ago when fascists took it over. For Instagram it tries to force a login and without one all you can see is “MKE Critical Mass rides start from Red Arrow Park at 6 p.m. on the last Friday of the month. Slow roll / no drop”. You cannot view any posts without an account. This might be fine if no additional information exists there that does not exist on the web site… which brings us to Facebook.

If you visit Facebook it tries to get you to log in, but you can skip than and get some information. The event is listed and if you click “More” you get more information, which is not on the web site: “We’re ending at Zillman Park for the Bay View Gallery Night Makers Market (2168 S Kinnickinnic Ave), and the tentative route is about 10 miles through downtown, Walkers Point, and Bay View.” There are a few more notes about the group ride, rules, reminders, etc… (This info is also in the Instagram posts but you cannot see it without logging in.)

But what we’ve just learned is that if you only use the web site, you are missing out on information. (We also get a link via Facebook to linktr.ee/mkecriticalmass which mostly links to things we already know about but adds two more links.)

“Okay Mr.Critic, how would you do it differently!?”

As I mentioned, I am I no position to tell anyone what to do, but I do have ideas about how I would do things…

I’m a huge fan of POSSE (which is Post (on) Own Site Syndicate Elsewhere) so that the primary source of all information is your own web site, on a domain you control, and can be free of ads, tracking, required accounts, etc.

The “Syndicate Elsewhere” part of it then allows you to share info across social media sites. Instagram, Facebook, Twitter, Bluesky, etc. I’m a bit hardline on not wanting to use corporate social media myself so I’d probably choose the Fediverse in some way. There’s also RSS, one of the most important technologies of the web. Using RSS allows people to subscribe to updates and do neat things with the information you are providing.

A calendar (in iCalendar format that can be subscribed to) is another great thing. Not a “Google Calendar” but a URL that you can plug into anything that can take iCalendar data. This could put every ride or event onto someone’s calendar with very little effort.

An email address might also be useful, as a means of contacting someone. Right now there the web site has no way of contacting the organizer(s).

For Milwaukee Critical Mass I may be overthinking things… Plenty of people probably just need to know “Rides start from Red Arrow Park at 6 p.m. on the last Friday of the month” and that’s enough. I don’t know if rides get canceled due to weather, or what the route is, or how long the route is, or whatever, but I’ve been thinking more about how we can make the web better for people so this post is the result of that.

I wonder how difficult it would be to assemble the tools or build a platform to make these things easier. (A platform free of corporate social media of course, so open source tools that can be self-hosted would be ideal.) I should check back in on how Scrappy Hour is doing things now.

Thanks for reading! See you on the streets!

Categories
Uncategorized

Scrappy Hour Ride – February 2025

Scrappy Hour - Feb 2025

Hey, we did it again! The February 23rd, 2025 Scrappy Hour Ride was a cold one, and there was snow on the ground, though the streets and bike paths were clear. But yeah, it was another cold one. Sadly we had just two people from Wauwatosa this time, just Michael and myself. Matt could not make it, and Meg and Paige did not show… Anyway, Michael and I made the trek to the lakefront to meet up with the others.

Scrappy Hour - Feb 2025

I brought the Kids Camera Instant Print (get your own!) and took a few photos while we were hanging out. As usual, if people let me take their picture I gave them a receipt.

Scrappy Hour - Feb 2025

We did manage to see a truck completely blocking the protected bike lane on the way there… I really gotta remember to use Bike Lane Uprising next time.

Scrappy Hour - Feb 2025

If you still use The Instagorm you can find the Scrappy Hour over there. There is also a mailing list somewhere for alerts about rides for the community

Scrappy Hour - Feb 2025

Anyway, that’s all I got so enjoy the photos and we’ll see you on Sunday, March 30th, 2025!

Scrappy Hour - Feb 2025

Scrappy Hour - Feb 2025

Scrappy Hour - Feb 2025

Scrappy Hour - Feb 2025

Scrappy Hour - Feb 2025

Scrappy Hour - Feb 2025


Note: This post contains an Affiliate Link. Read More.

Categories
Uncategorized

Another Flat…

So according to my previous post I last had a flat tire in October 2024 (and August 2024). For the one in August I took it into the LBS to get fixed, but in October I changed it myself because damn I should DIY that stuff, right?

I probably got a puncture on the January Scrappy Hour Ride as my tire was pretty low at the end of the ride. Anyway, Matt was kind enough to give me a set of tires (nice tires!) so I pulled off my own worn out tire and put on a new tube and tire.

I actually had no idea the direction of rotation could matter, and I didn’t, notice the little rotation arrow until after I wrapped up the repair! Luckily I got it right.

Oh, I did end up throwing together a simple PVC bike stand. It’s not great (yet) but it’s better than nothing. It definitely helps when changing the rear tire.

(Note: I also got a flat tire with my car last month but I’m not counting that one.)

So hey, we are back in business and as soon as it warms up a bit, or I feel like suiting up again, I’ll hit the road and try it out.