WRDashboard

Fork Me on Gitlab

Articles

Elmira Advocate

WHY DO OUR GOVERNMENTS LIE TO US SO CONSTANTLY?

 

There are many reasons. Contempt and disrespect are right up there. Politicians were once ordinary people just generally a little lazier and a little more bent. This of course is a significant generalization as you will find occasional doctors and lawyers sitting in both provincial and federal governments. Both had to have money and ambition presumably along with hard work to get their degrees etc. Of course you will also get golf pros, their sons, drug dealers and all the rest sitting as M.P.s and M.P.P.s. Hence many of the lazy, unprepared for honest work politicians see others just like themselves sitting in legislatures and parliaments as well as on municipal councils and realize that citizens themselves are lazy enough and dumb enough to vote in riff raff. Hard to respect the public based upon the choices they make to represent themselves in government.

The public are occupied with keeping their jobs and hence salaries and wages. Non union work especially requires constant vigilance and watching which way the wind is blowing. More jobs are lost due to personality clashes than to inability to do the job. Citizens know that constantly toeing the line also means in non work matters and opinions that do not match your supervisor's or bosses. Political complacency by the public results from feeling detached from all decisions and having zero say in them. Again expressing strong political opinions at work can eventually lead to your head on the chopping block albeit employers are smart enough to dredge up some kind of pathetic work related excuse prior to dropping the axe. 

Politicians have learned that voters have short memories and long loyalties. Most first time voters follow their parents footsteps. Voters only vote about every four years and in between it's all about keeping their jobs , raising families and if they are fortunate at today's prices, buying homes. Then there are school issues, bills, social lives and so many important, in your face matters on a daily basis.

Politicians do learn on the job. They learn how to lie via using weasel words and phrases that allow them to backtrack when necessary.  Phrases like "when necessary" or "under the circumstances" gives them an out when their statements become ridiculous down the road. Quoting made up statistics that can never be checked such as "Canadians are fearful of gun violence" is a good example to justify whatever stupidity is the flavour of the day. Inventing crises is also a tool for ethically challenged politicians. So is using a legitimate crisis such as Tumblur Ridge in British Columbia. Odd how we learned that a disturbed individual committed firearms murders but we still have no knowledge as to why the authorities had returned those previously seized firearms to the family. Nor do we know if the "guilty" firearms used are on the government's banned list or not. All very strange how we the public are kept in the dark on important matters strongly related to current and ongoing highly criticized government initiatives and activities.     

Politicians are masters at deflecting appropriate criticism. That unfortunately is their greatest strength. 


Capacity Canada

Registrations for the ModernBoard Essentials program are open!

If you’ve ever considered serving on a Nonprofit Board but weren’t sure where to begin, you’re not alone. For many first-time board members, knowing where to start, what’s expected, and whether they have the right experience can feel like a challenge.

Capacity Canada’s ModernBoard program, delivered in collaboration with Conestoga College, is designed to help bridge that gap. Registrations are now open for Course One: Essentials of Governing, offering aspiring board members the knowledge and confidence to take the first step toward meaningful community leadership.

Since 2020, more than 1,000 Nonprofit board members from across Canada have successfully earned ModernBoard credentials.

“This course encouraged me to listen, learn, pause, and reflect, positioning me well for both my current role and future board opportunities,” says Ann Schultz, one of the participants.

Whether you’re looking to give back, grow your leadership skills, or prepare for your first board position, the program offers practical training from governance experts and a pathway to becoming a stronger advocate for the causes you care about.

To learn more and to register, visit our website.

The post Registrations for the ModernBoard Essentials program are open! appeared first on Capacity Canada.


Capacity Canada

Introducing Gail Steckley: Capacity Canada’s Newest Member

Capacity Canada is pleased to welcome Gail Steckley as its newest Executive-in-Residence.

♦After more than 30 years working in global health and international development, Gail knows what it means to lead through change. Her career has taken her from community health programs in Zambia to post-tsunami recovery efforts in Indonesia, along with leadership roles across Africa and Asia. Throughout her work, Gail has partnered with governments, non-profit organizations and international agencies to strengthen health systems and improve access to HIV prevention and treatment.

Today, Gail works as a leadership coach, supporting mid-career and senior leaders as they take on new responsibilities, navigate change and make important career decisions. As a certified Professional Integral Coach®, she helps clients better understand how they lead, explore new perspectives and develop approaches that support their growth.

With her extensive experience in leadership, international development and organizational change, Gail brings a valuable perspective to the Capacity Canada community.

We look forward to the insights and experience Gail will share with fellow members.

The post Introducing Gail Steckley: Capacity Canada’s Newest Member appeared first on Capacity Canada.


Capacity Canada

Applications for CD4SG are open! Apply by August 21

Applications are now open for Capacity Canada’s annual initiative Creative Day for Social Good (CD4SG).

For many Nonprofit organizations, there’s no shortage of ideas, just not enough♦ time, staff, or budget to make them happen. Whether it’s refreshing a website, creating a stronger brand, launching a new campaign, or telling stories that inspire donors and volunteers, communications projects often end up on the back burner while day-to-day priorities take over.

♦CD4SG creates a connection between organizations looking for creative support and students eager to use their skills for good. Made possible through a partnership with professors and students in Conestoga College’s Creative Industries programs, especially Graphic Design, the initiative brings together Nonprofit organizations, charities and social enterprises with emerging creative professionals for a day of focused, hands-on collaboration.

As part of the one-day, pro bono initiative, students volunteer their time and♦ talents to work alongside organizations on real communications challenges. Together, they tackle projects such as refining a brand, developing marketing materials, strengthening digital communications or finding a clearer, more compelling way to tell an organization’s story.

Applications for Creative Day for Social Good close at midnight on August 21, and space is limited.

To learn more and to apply, please visit our website.

The post Applications for CD4SG are open! Apply by August 21 appeared first on Capacity Canada.


Aquanty

HGS RESEARCH HIGHLIGHT – Modeling E. coli fate and transport in and around a cattle pond

Yakirevich, A., Coffin, A., Widmer, J., Pisani, O., Hill, R., & Pachepsky, Y. (2026). Modeling E. coli fate and transport in and around a cattle pond. Hydrology and Earth System Sciences, 30(12), 3805–3823. doi.org/10.5194/hess-30-3805-2026

CLICK HERE TO READ THE ARTICLE.

“Accounting for the complexity of hydrogeological and hydrochemical processes, we choose the HGS (Therrien et al., 2010) as a basis for the model. In HGS, the flow of water is simulated in a fully integrated mode; water derived from rainfall inputs is partitioned into components such as overland and stream flow, evaporation, infiltration, recharge, and subsurface discharge into surface water features such as lakes, streams, and wetlands in a natural, physics-based fashion. It employs a fully coupled numerical approach, allowing the simultaneous solution of both the surface and variably saturated subsurface flow, solute transport, and heat transfer.”
— Yakirevich, A. et al., 2026 ♦

Fig 3. Numerical model setup: (a) The 2D triangular finite element mesh in the simulation domain. Cowpats (a flat, round piece of cow dung) are located in the yellow color area. Colored circles represent the location of sources to simulate cattle excretion in the pond. (b) Schematic representation of numerical mesh layers in the simulated profile. Solid and dashed horizontal lines represent the boundaries between layers and sublayers, respectively. (c) 3D finite element mesh (FEM).

We're pleased to highlight this publication by Alexander Yakirevich and colleagues, which explores the fate and transport of Escherichia coli (E. coli) in and around a cattle pond using HydroGeoSphere (HGS). The study presents a fully integrated surface water–groundwater model that simulates the hydrology of a small watershed (~0.45 km²) alongside microbial transport, providing new insight into how livestock activities influence water quality in agricultural watersheds.

Understanding how microbial contaminants move through agricultural watersheds is essential for protecting water resources used for livestock, irrigation, recreation, and downstream ecosystems. While runoff from grazing lands is widely recognized as a source of bacterial contamination, the relative importance of different transport pathways—including overland flow, subsurface flow, and direct livestock deposition into ponds—has remained difficult to quantify. Traditional monitoring alone cannot capture these complex interactions, highlighting the need for integrated physics-based modelling approaches.

Fig 11. Simulated spatiotemporal distribution of the relative E. coli concentration at the surface. Cr = C/Cmax, Cmax = 1.4×10^10 MPN m−3, the legend is on a log scale.

To address these challenges, the researchers developed a fully integrated HydroGeoSphere (HGS) model of a 0.45 km² cattle-grazing watershed in Georgia, USA. The model coupled three-dimensional variably saturated groundwater flow with two-dimensional surface water flow and simulated E. coli transport using coupled advection-dispersion equations that account for bacterial release from cowpats, sorption, and temperature-dependent inactivation. Field observations collected over multiple years—including weather data, pond water sampling, manure sampling, and automated trail camera imagery tracking cattle activity—were incorporated to realistically represent bacterial loading from both grazing areas and cattle entering the pond.

The simulations successfully reproduced the overall spatial and temporal patterns of E. coli concentrations throughout the pond without requiring extensive model calibration. The most significant finding was that direct deposition of manure by cattle standing in the pond contributed approximately two orders of magnitude more E. coli than surface runoff from surrounding grazing lands. The study also demonstrated how seasonal weather conditions, bacterial die-off rates, and livestock behaviour influence microbial concentrations, while highlighting additional factors—such as waterfowl activity and pond mixing—that may explain observed concentration spikes not captured by the model.

HydroGeoSphere was central to this work because it enabled the researchers to simulate the complete hydrologic system within a single, fully coupled modelling framework. By integrating surface water flow, variably saturated subsurface flow, microbial transport, evapotranspiration, and dynamic bacterial loading from livestock, HGS provided a process-based understanding of how microbial contamination develops and moves throughout the watershed. This level of integration allowed the researchers to distinguish between competing contamination pathways and evaluate their relative importance under real-world conditions.

This work demonstrates how integrated hydrologic modelling can improve our understanding of microbial water quality in agricultural watersheds. By combining field observations with HydroGeoSphere's advanced surface water–groundwater modelling capabilities, the researchers developed a practical framework for predicting E. coli contamination using readily available data. The findings provide valuable guidance for consultants, watershed managers, and agricultural professionals seeking to identify the primary sources of microbial contamination and develop more effective water quality management strategies.

Interested in seeing how this research evolved? Before the full journal publication, the team presented this work as a conference poster highlighting the development of the HydroGeoSphere model and the early findings. Read our previous research highlight on the poster by clicking the link below.

CLICK TO READ THE PREVIOUS HGS RESEARCH HIGHLIGHT – Modeling fate and transport of E. coli in a small watershed with grazing lands around a pond.

Abstract:

Contamination of surface water is a concern for public health. Lands used for animal production are sources of fecal microorganisms that can reach water bodies, impact their quality, and adversely affect their potential uses. Understanding the mechanisms of microbial transport through surface/subsurface flow is imperative to predict surface water contamination and to assign management strategies for enhanced water quality. The aim of this work was to develop and test a mechanistic numerical model to simulate watershed-scale surface/subsurface water flow, bacteria release from cow manure, and their fate, as well as transport to a cattle pond. The integrated surface-subsurface hydrological platform HydroGeoSphere (HGS) was the basis for the site-specific model. The pond and its environs were monitored for 15 months for Escherichia coli (E. coli) concentrations, which remained relatively high throughout the study. The model was applied to simulate E. coli bacteria transport in a grassed drainage basin grazed by a permanent herd of approximately 50 cattle. Most model parameter values were adopted from the literature. The model explicitly accounted for cow excretion to the pond as a source of microbial contamination. The latter was estimated from the time spent by cows in the pond, which in turn was estimated from imagery obtained with eight trail cameras installed to cover the pond surface. Images were obtained every 15 min. Simulations for two years showed that the non-calibrated model replicated spatiotemporal patterns and peak E. coli concentration reasonably well. The E. coli cumulative flux loaded by cattle excretion directly to the pond was around two orders of magnitude greater than that with the surface flow. The results demonstrate that mechanistic watershed-scale modeling combined with observational data on cattle behavior can provide useful predictions of microbial contamination in cattle ponds using only readily available data.

CLICK HERE TO READ THE ARTICLE.


James Davis Nicoll

Starry Sky / The Kif Strike Back (Chanur, volume 3) By C J Cherryh

1985’s The Kif Strike Back is the middle volume in a three-book-arc in C. J. Cherryh’s Chanur series.

Events in Chanur’s Venture having transpired not entirely to Pyanfar Chanur’s liking, Pyanfar is enticed to set course for Mkks station. This is almost certainly a trap.


Github: Brent Litner

brentlintner starred cpburnz/python-pathspec

♦ brentlintner starred cpburnz/python-pathspec · August 3, 2026 12:56 cpburnz/python-pathspec

Utility library for gitignore style pattern matching of file paths.

Python 231 Updated Jun 4


Jason Paul

In Support of Backups: Part 3 – The Return

Introduction Back in 2022, I wrote a couple of articles discussing the importance of backups and some hard lessons I learned when a hardware failure took down my homelab. In…Continue readingIn Support of Backups: Part 3 – The Return

KW Predatory Volley Ball

Congratulations Ontario Summer Games TORP athletes

Read full story for latest details.

Tag(s): Home

Brickhouse Guitars

Hozen Blue Label #91 Demo

-/-

The Backing Bookworm

Written in the Margins


Written in the Margins is part of the fourth book in the Library Love Notes romance series written by various authors.
This is a small-town romance with (surprisingly spicier than expected) scenes where the town's bad boy meets the town's good girl and the townsfolk, who are a very nosy and opinionated bunch and aren't afraid to give their two cents. The series is set in the fictional Ontario small-town of Beaver Creek and with our main characters both being authors who meet at an author event, there's the added bonus of Canadian book nerd joy!!
The main couple: Love isn't always easy. Both Zander and Addie have their own trauma/loss to deal with which muddies the romance waters. I liked Zander and found his past was interesting (if a bit darker than expected) and I was rooting for him right away. He's damaged with a past but he did the crime, did the time and now just wants to start over ... if only the town would let him. And despite the 'reformed felon' not being on my romance bingo card, with him it totally works. 
Addie was the town sweetheart and she was ... fine if a bit predictable and bland. We're told she's sweet but I came away wanting more from her character.
This is sweet small-town read that dives right into the relationship (insta-love alert) and spicy scenes, but brings in deeper/darker themes (abuse, trauma, violence) for some depth and a couple you'll root for as they battle their demons and the pushy townspeople who have a lot of preconceived ideas and prejudices. 

My Rating: 3 starsAuthor: Madeline NixonGenre: Romance, SpiceSeries: Library Love Notes 4Type and Source: ebook, personal copyPublisher: self published?First Published: June 16, 2026Read: July 21-26, 2026

Book Description from GoodReads: He has a reputation in town. She's determined to give him his second chance. Adelaide Ramsay is a Beaver Creek darling. She’s distantly related to the town’s founders, has a tragic past that was once town gossip, and found success as historical fiction author. The town is happy to claim her as one of their best. But behind her smile is a woman who overcompensates with bright colours and endless hobbies, always feeling like she’s a little too much for anything real.
When Zander Browning gets invited to Beaver Creek’s Festival of Local Authors, he’s anxious to return to his hometown. The first fifteen years of his life were spent in town before everything blew up. He tells himself he’s content being alone and deserves it for what he did in the past. But behind his stony exterior is a man yearning for someone to finally love him. Through a stroke of fate, Adelaide is the first person Zander sees at the event, which they spend flirting through books.

Adelaide’s sunshine-y personality breaks through Zander’s grey skies. They see each other. But a storm is brewing in town that might just break them apart.

Written in the Margins is part of the Library Love Notes series, featuring open-door, small-town romances set in the fictional cozy town of Beaver Creek, Ontario.


The Backing Bookworm

The Art of Racing in the Rain


I've seen this book around for a long time and finally grabbed it, blurb unseen, and listened to it while I cycled on a local trail.
The charm of this story comes from it being told from the perspective of a golden retriever called Enzo. He relates to the reader the ups and downs in his humans' lives - Denny Swift, an up-and-coming racecar driver and his small family.
What I liked: The unique POV and the heartwarming vibe and despite the story getting a bit melodramatic at times, I like that the emotional scenes - particularly between Enzo and Denny's wife, Eve - made this gal tear up a time or two. 
What I didn't like: Too many racing descriptions and metaphors! I was also surprised at the focus being less on the dog and more on a contentious custody battle. This gives readers characters they'll love to hate but the silly ending in the courtroom was very disappointing. 
This wasn't the multiple Kleenex tearjerker read I was expecting. It was a decent read but wasn't the amazing read I was anticipating based on the rave reviews of others.

My Rating: 3 starsAuthor: Garth SteinGenre: Contemporary Fiction, TearjerkerType and Source: eAudio from public libraryNarrator: Christopher Evan WelchRun Time: 7 hoursPublisher: HarperAudioFirst Published: May 13, 2008Read: July 19 - 22, 2026

Book Description from GoodReads: Enzo knows he is different from other dogs: a philosopher with a nearly human soul (and an obsession with opposable thumbs), he has educated himself by watching television extensively, and by listening very closely to the words of his master, Denny Swift, an up-and-coming race car driver.
Through Denny, Enzo has gained tremendous insight into the human condition, and he sees that life, like racing, isn't simply about going fast. Using the techniques needed on the race track, one can successfully navigate all of life's ordeals.

On the eve of his death, Enzo takes stock of his life, recalling all that he and his family have been through: the sacrifices Denny has made to succeed professionally; the unexpected loss of Eve, Denny's wife; the three-year battle over their daughter, Zoe, whose maternal grandparents pulled every string to gain custody. In the end, despite what he sees as his own limitations, Enzo comes through heroically to preserve the Swift family, holding in his heart the dream that Denny will become a racing champion with Zoe at his side. Having learned what it takes to be a compassionate and successful person, the wise canine can barely wait until his next lifetime, when he is sure he will return as a man.

A heart-wrenching but deeply funny and ultimately uplifting story of family, love, loyalty, and hope, The Art of Racing in the Rain is a beautifully crafted and captivating look at the wonders and absurdities of human life . . . as only a dog could tell it.

The Backing Bookworm

The Wedding Jinx


I grabbed this audiobook from Audible.ca for something short and breezy. But what I got was repetitive and cheesy.
Not much goes on in this book but what listeners do hear, ad nauseum, is that Mila has 'a thing for her bosses'. Yeah, Mila, we got that the first four times you mentioned it. 
Thankfully Holly Warren and Patrick Boylan's narration was the saving grace in this forced proximity romance that didn't enthrall me, but I also didn't hate it enough to DNF it.  
This was a clean (very low spice) romance whose blurb was enticing, but the story didn't back it up. I'm glad this was a freebie on Audible.

My Rating: 2 starsAuthor: Becky MonsonGenre: RomanceType and Source: eAudio from Audible.caNarrators: Holly Warren, Patrick BoylanRun Time: 7 hours, 9 minPublisher: Jonson PublishingFirst Published: Nov 10, 2023Read: July 14-16, 2026

Book Description from Audible.ca: A jinx: a person or thing that brings bad luck.
I'm Mila Banks, the ultimate jinx. Not just in theory—I've got a track record. Seven weddings, seven disasters. Everything from a groom with a concussion to an attack of red ants (a long story) has happened because of me. So, when my bestie, Nadia, insists on making me her maid of honor, I can't help but try to find a way out of it. To make matters more complicated, my boss, Grayson Manning, is going to be the best man. Did I mention I'm head over heels for him? Well, sort of. You see, I have a knack for falling for my bosses, so it's all a tad confusing. The bottom line? My life is a bit of a disaster right now.

Here's to hoping I don't turn Nadia's big day into another catastrophe, and that, for once, I won't hand my heart to the wrong guy. My bad luck has to run out eventually, right? I guess we're going to find out. All I wish for is that, in the end, my best friend gets the dream wedding she deserves, and maybe, just maybe, I'll snag the man I truly deserve too.

The Wedding Jinx is a boss romance filled with laughs, tears, and the unforgettable chaos of weddings. Expect sizzling chemistry but low on spice.


James Davis Nicoll

Just Like Wine / Destinies, Summer 1980 (Destinies, volume 8) Edited by Jim Baen

Destinies, Summer 1980 is the third issue in the second volume of Jim Baen’s Destinies science fiction bookazine.

As it happens, I have previously mentioned this specific volume. Not that Jim Baen was not going to get my money, but in 1980, putting Heinlein’s name on the cover made it a definite sell.



Kitchener Panthers

Panthers blanked in Guelph

KITCHENER - The go-ahead run got to the plate with one out in the ninth.

But the Kitchener Panthers couldn't find a way to cash in a run, as the team lost its ninth in a row 3-0 in Guelph Saturday night.

The Panthers managed to get eight hits on the night but ended up stranding seven runners.

Trey Cruz went just two innings in his CBL debut, giving up all three runs in the second inning. He surrendered four hits, walked one and struck out three.

The rest of the bullpen kept the Royals off the board. Ben Hewitt, Ernesto Punales and Jake Liberta struck out nine combined batters and didn't walk anyone.

Malik Williams went three-for-four in the defeat, extending his hitting streak to five games. He leads the league with a .431 batting average among qualifying hitters.

Kitchener falls to 10-24 while Guelph improved to 20-14.

The Panthers are on the road in Chatham-Kent Tuesday, before hosting the Royals Thursday at 7:05 p.m.

GET YOUR TICKETS NOW and #PackTheJack!

BOXSCORE

Github: Brent Litner

brentlintner starred pallets-eco/croniter

♦ brentlintner starred pallets-eco/croniter · August 1, 2026 10:15 pallets-eco/croniter

Parses cron schedules to iterate over datetime objects.

Python 556 Updated Aug 1


Github: Brent Litner

brentlintner starred pypa/packaging

♦ brentlintner starred pypa/packaging · August 1, 2026 10:15 pypa/packaging

Core utilities for Python packages

Python 746 Updated Aug 3


Github: Brent Litner

brentlintner starred Python-Markdown/markdown

♦ brentlintner starred Python-Markdown/markdown · August 1, 2026 10:15 Python-Markdown/markdown

A Python implementation of John Gruber’s Markdown with Extension support.

Python 4.2k Updated Jul 30


Github: Brent Litner

brentlintner starred jpadilla/pyjwt

♦ brentlintner starred jpadilla/pyjwt · August 1, 2026 10:15 jpadilla/pyjwt

JSON Web Token implementation in Python

Python 5.7k Updated Aug 3


Grand River Rocks Climbing Gym

Extended Sale!

♦ ♦

The post Extended Sale! appeared first on Grand River Rocks Climbing Gym.


Grand River Rocks Climbing Gym

Extended Annual Membership Special

♦ ♦

The post Extended Annual Membership Special appeared first on Grand River Rocks Climbing Gym.


Elmira Advocate

GOOD NEWS & BAD NEWS : YES WE HAVE DNAPLS IN OUR ELMIRA BEDROCK AQUIFER BUT NOT TO WORRY BECAUSE SO DOES WATERLOO AND CAMBRIDGE


Isn't that great! Here we are already having the precedent of long term DNAPLS (TCE) in our drinking water aquifers hence we should be able to live with them up here in Dogpatch (Elmira) just as folks have for many decades in Waterloo and Cambridge. The ones in Waterloo are in the William St. Wellfield located at the corner of Regina St. and William St.. The Cambridge ones are at the very well known and most expensive ground water treatment location in Waterloo Region namely the Middleton Wellfield. This is located at the south end of Cambridge literally beside the Grand River. Despite a local hydrogeological consultant advising me that the source of the TCE there is NOT Canadian General Tower (CGT) perhaps a hundred metres away I am very skeptical. Yes there are dry cleaners also in the vicinity however so maybe they contributed or not.

Other good news is this. TCE or trichloroethylene is much more toxic than the chlorobenzene that we have here in Elmira courtesy of Uniroyal Chemical and maybe others. So if the good folks in Cambridge especially can both breathe TCE in the Bishop St. community and drink a little from their taps and not die immediately then we are looking good! 

The sources in Waterloo may include Canbar and Sunar and even possibly the old Seagram's plant but keep in mind our authorities truly enjoy muddying those waters and not being forthcoming.  The proof of course is the long term and ongoing detections of TCE in those drinking wells over a period of decades. Normally dissolved TCE should have all been pumped out by now but that is the joy and excitement of DNAPLS. They can exist in the subsurface, most especially in fractured Bedrock, sometimes for centuries and only very slowly dissolve into the groundwater and get pumped to surface. Now of course our chlorobenzene has been with us here in Elmira, just like NDMA, for far more than the 36 or 37 years since it was allegedly discovered in November 1989. 

If it is still in our groundwater, even in low concentrations, in ten or twenty more years then I think even the most professional liars are going to be looking for a hole to crawl into. But hey by then the few remaining honest and knowledgeable citizens should be long gone.  Liars are mostly simply buying time for themselves.  



Cordial Catholic, K Albert Little

The Most Miraculous Catholic Conversion Story Ever (w/ Diane Pietras)

-/-

Kitchener Panthers

Panthers lose eighth straight game

LONDON - Evan Elliott and Owen MacNeil got roughed up, as the London Majors scored early and often in a 17-2 rout of the Kitchener Panthers at Labatt Park Friday night.

The Panthers managed eight hits on the night, but could only scratch across a pair, stranding five and hitting into two double plays.

Elliott gave up eight runs on 10 hits and was chased after three innings and was tagged with the loss.

MacNeil came on in the fourth, and didn't fare much better.

He was tagged with two balks allowing lead off man Trent Lenihan to get from first to third, and an error charged to Malik Williams at first brought him in to score.

It was the first of six runs scored in the inning and put the game completely out of reach.

Luis Perez gave up a run on five hits in five innings to take the win.

Kitchener dropped to 10-23 and sit nine games back of a playoff spot with 15 games left. London improved to 22-11.

The Panthers are in Guelph Saturday night at 7:05 p.m.


KW Motion

Restaurant Spotlight: Sweet Loop Cafe in Kitchener/Waterloo

Located at 255 King Street North in Waterloo, Sweet Loop Cafe is a locally owned dessert café specializing in handcrafted churros made fresh to order. Since opening on September 28,...

Source

Github: Brent Litner

brentlintner starred zenbu-labs/terminal-browser

♦ brentlintner starred zenbu-labs/terminal-browser · July 31, 2026 14:38 zenbu-labs/terminal-browser

A browser that runs directly inside your existing terminal

Rust 808 Updated Aug 4


Code Like a Girl

What Your Restaurant Reviews Know About You

How we turned messy Yelp data into personalized recommendations♦Image crreated with ChatGPT

(FYI — At the end of the page, I have linked YouTube video of my project where I have walked through the code, the technical aspects, and also a link to the literature survey paper)

Choosing where to eat sounds trivial, until you’re standing on a street with 40 options, reading reviews that contradict each other, and ending up at the nearest place anyway.

That frustration turned into a six‑month final-year project and taught me more about data, sentiment analysis, and machine learning.

This is what we built, how it works, and what actually surprised me along the way.

I tried to build an engine that recommends a restaurant to you based on the database fed into it, your personal preferences (user profile), and the restaurant's specialty (restaurant’s profile)

Platforms like Yelp and TripAdvisor are sitting on enormous amounts of useful data with millions of real reviews, ratings, and user histories. The information is there. The challenge is turning unstructured human language into something a system can reason about. Most recommendation systems take one of two approaches:

Collaborative filtering — “Recommending things based on what similar users liked.” This works well when you have enough data, but falls apart the moment a new user joins. No history means no recommendations. This is the cold start problem.

Content-based filtering — “ Recommending based on the characteristics of the item itself.” Handles new users better, but tends to suggest things too similar to what you’ve already tried.

♦Image created by the author

The goal for this project was to handle both scenarios properly:

  • Give good recommendations to users with history
  • Give sensible recommendations to users with none
The Dataset

We used the Yelp Academic Dataset — business listings, user reviews, star ratings, and check-in data in JSON format.

♦Image created by the authorMaking Sense of the Text

A star rating tells you that someone liked or disliked a place. The review tells you why. That distinction matters for recommendations.

Sentiment analysis is the NLP technique that bridges that gap. It basically classifies text as positive, negative, or neutral.

But the more useful version is aspect-level sentiment analysis: figuring out that a restaurant has excellent food but slow service. Those are different opinions about different things, and a recommendation system should treat them differently.

For example, A person might have commented on a Restaurant xyz, “Loved the Pizza, it was amazing but the Beer was average and disappointing.”

This implies that they like pizza and had higher expectations for the beer’s quality/taste. It also implies that the restaurant makes great pizza, but the beer is not that great. This is Data!

Of course we can't rely on one such data point. A collection of such reviews is what creates a user profile, a profile of what they like, dislike, and don’t really care about. And many such reviews on a business give us the business profile of what they are best at and what they could improve on.

The Preprocessing Pipeline

Before any model touches the text, the text has to be cleaned. This was the most time-consuming part of the project and the least glamorous.

Every review went through:

  • Tokenization — splitting text into individual
  • Stopword removal — filtering out words like “the”, “a”, “is” that add noise without meaning
  • POS tagging — identifying each word’s grammatical role to preserve context
  • Lemmatization — reducing words to their root form (“running”, “ran”, “runs” → “run”), which is more accurate than stemming

The output is a bag of words, a numerical representation the models can actually work with.

Getting this pipeline right took longer than expected. A lot of that time was spent on edge cases: emoji characters in reviews, inconsistent punctuation, non-ASCII text. None of it is interesting to fix, but all of it matters.

Topic Modeling with LDA♦Image created by the author

This is the part I found most interesting.

Latent Dirichlet Allocation (LDA) is an unsupervised technique that discovers hidden topics in a collection of documents. You don’t tell it what the topics are but it finds them by identifying which words tend to appear together.

Running LDA on restaurant reviews, it comes up with topics like:

  • Food type: “crust”, “cheese”, “pepperoni”
  • Service experience: “staff”, “wait”, “service”
  • Atmosphere: ambience”, “cozy”, “decor”

Each restaurant ends up with a topic distribution — a kind of fingerprint describing what customers most often talk about. Two Italian restaurants with identical category labels can look very different in topic space: one might be dominated by food quality discussions, the other by atmosphere and price.

This gave the recommendations a texture that simple category matching never could. One thing LDA requires is choosing the number of topics upfront — a hyperparameter you tune manually. Too few and everything blurs together; too many and they become meaningless.

There’s no automated answer here. You run it, read through the outputs, and use judgment. That was a useful reminder that unsupervised learning always needs a human in the loop.

The Recommendation Logic
User profiles and restaurant profiles were created using the process described above and converted into 2 vectors using the LDA technique.

Matching users to restaurants used cosine similarity: representing both as vectors and measuring the angle between them. The smaller the angle, the better the match. It’s direction that matters, not magnitude — so a user who left two reviews and one who left two hundred are treated fairly.

♦Image created by the author

For new users with no history, we asked for preferences directly for crude recommendations. Cuisine type, dietary needs, atmosphere preference — and used those as the starting profile. It’s a workaround, not a solution, but it gave the system something to build from.

Results

The full pipeline — preprocessing, LDA, cosine similarity matching — produced a relatively good accuracy and precision against test data. Better than I’d expected given the noise in the dataset.

One thing worth noting: the system also surfaced the least compatible restaurants alongside the most compatible ones. That turned out to be a useful sanity check.

Takeaways

Data cleaning and making it useful is the majority of the project. The modeling is maybe 30% of the work. The other 70% is making the data usable.

Unsupervised models need human review. With LDA there’s no ground truth to validate against. The topics either make intuitive sense or they don’t.

The cold start problem doesn’t have a clean answer. The content-based workaround is reasonable, but in a real product you’d need to think harder about onboarding — capturing enough preference signal without making sign-up feel like a survey.

Wrapping it up

The thing this project left me with is a much more concrete understanding of what goes into building a recommendations engine. There’s real work behind those “you might also like” emails that you receive as part of promotions. It’s a pipeline built using you and the data you provide.

If you’re building something similar, the Yelp dataset is a good starting point. Start simple, get the full pipeline working end to end, then improve the pieces.

YouTubemedium.com/media/b533e88f166d2ecafa7804b96d6bcfbf/hrefmedium.com/media/4973e33a65b218285c41b93a479c342b/href

GitHub - spurthym/Restaurnt-Recommendation-System

What Your Restaurant Reviews Know About You was originally published in Code Like A Girl on Medium, where people are continuing the conversation by highlighting and responding to this story.


Code Like a Girl

Question Unsupported Claims, and Other Actions for Allies

Better allyship starts here. Each week, Karen Catlin shares five simple actions to create a workplace where everyone can thrive.♦1. Question unsupported claims

It only takes a few repeated, unsupported comments to change how people see a coworker.

Author Mita Mallick described a jealous colleague who said things like:

  • “Did you notice Mita wasn’t invited to that meeting? Clearly our boss doesn’t trust her.”
  • “Mita is such a micromanager and so in the weeds! How do you deal with her?”
  • “Mita is completely overwhelmed. I’m happy to take on these new projects.”

None of these statements were presented as facts, yet repeated often enough, they shaped how others viewed her.

Bit by bit, day by day, this person shifted the narrative about her and negatively impacted her personal brand.

When we hear a claim about a coworker, pause before accepting or repeating it. Ask, “What makes you say that?” or “Have you talked with them about your concern?”

By challenging unsupported claims, we can build a workplace where people are evaluated on their contributions, not on rumors.

Share this action on Instagram, LinkedIn, or YouTube.

2. Don’t let AI minimize achievements

After noticing that Gemini had toned down a significant accomplishment when helping revise her résumé, Jennifer Horsburgh changed one word: her first name became Jeff. And the results were striking.

In a viral LinkedIn post, Horsburgh explained that the difference was in the framing, not the facts. Jennifer’s volunteer work was labeled as community service, and her wins were things she “assisted with” and “collaborated on.” The identical kind of work, with Jeff’s name on it, became leadership, summarizing that he had “engineered” and “architected” solutions to problems.

She pointed out “these verbs are everything, because they decide who reads as a senior director and who reads as the assistant.”

When she asked Gemini how it sorts people’s work, it explained, “I was essentially hallucinating a glass ceiling for you before you even walked into the room.”

It’s infuriating to see the bias.

Let’s learn from the cautionary tale Horsburgh shared with us, whether we’re using AI to revise our résumés, mentoring someone else to do so, or writing recommendations or performance feedback for a colleague. Look out for softening language that minimizes someone’s impact, such as “helped,” “supported,” “assisted,” or “participated.” If those words don’t accurately reflect the person’s contributions, replace them with language that better describes what they actually accomplished.

Let’s not scale the bias that was used to train these systems.

3. Correct people who say the R-word

Disability rights organization The Arc reported that slurs against people with intellectual and developmental disabilities are on the rise. The R-word is showing up on social media, in schools, in entertainment, and in everyday conversation.

As The Arc explains, “The R-word comes from the Latin retardare, meaning to slow down, delay, hold back, or hinder. But where a word starts isn’t the same as what it means now.”

Today it’s an insult that demeans their worth and humanity. And it’s become normalized enough that many people, especially younger people, do not always recognize it as a slur.

If we hear someone saying the R-word, The Arc recommends saying something without making it a scene. For example, “Hey, that word is a slur. Can we not use it?”

As they point out, the goal is education, not humiliation.

4. Offer a practice interview

A client recently asked me for suggestions on how to support autistic people, and I remembered something I had shared years ago in my newsletter: Offer a practice interview.

I came across this idea while reading How Microsoft Tapped the Autism Community for Talent. During interviews, people with autism may experience anxiety, which can cause them to freeze up and struggle to communicate their knowledge.

Yet Microsoft knows that autistic individuals can be strong at problem-solving, coding, and paying attention to detail. And the company decided to adapt its hiring processes to better meet the needs of this group.

Here’s just one of their approaches: Offer candidates a practice interview where they get feedback from recruiters before doing the official one.

I think this approach would work for anyone with pre-interview anxiety. Perhaps because they’re returning to work after taking a caregiving or medical leave. Or they have a non-traditional educational path. Or they’re a member of an underrepresented demographic.

Is this a best practice you can advocate for?

p.s. You may have noticed that I’ve used both person-first language (“people with autism”) and identity-first language (“autistic people”). I follow guidance from the National Institutes of Health (NIH): experts suggest defaulting to person-first language when writing generally about children and using a mix of person-first and identity-first language when writing about adults. (And if writing about a specific person, ask them for their preference.)

5. Community spotlight: Raise your hand

Newsletter subscriber Cody wrote,

“Soon after joining my company, I decided to reach out and ask, ‘How can I support or get involved in inclusion initiatives here?’ I was put in touch with the people who head up inclusion efforts, and they welcomed me into a role where I could help almost immediately. It really made it clear to me that sometimes all you need to do is reach out and express interest.”

Cody added,

“Being willing to raise your hand and make efforts to help is enough to signal not only that you’re a safe person, but that you’re willing and able to get involved and do work to make changes. Plus, sometimes you just get to meet some really neat people that way.”

Consider how you might help with your organization’s inclusion efforts, if you’re not already doing so. It could be as easy as reaching out to an employee resource group to ask if they need help with an upcoming event.

If you’ve taken a step towards being a better ally, please reply to this email and tell me about it. And mention if I can quote you by name or credit you anonymously in an upcoming newsletter.

That’s all for this week. I’m glad you’re on this journey with me,

Karen Catlin (she/her), Author of the Better Allies® book series

Copyright © 2026 Karen Catlin. All rights reserved.

Together, we can make a difference with the Better Allies® approach.

  • Say thanks to Karen and buy her a coffee ☕ (Need a receipt for educational reimbursement? Reply to this email, and we’ll take care of it.)
  • Sponsor an edition of this newsletter
  • Follow @BetterAllies on Instagram, Medium, or YouTube. Or follow Karen Catlin on LinkedIn
  • Read the Better Allies books
  • Tell someone about these resources
♦♦

Question Unsupported Claims, and Other Actions for Allies was originally published in Code Like A Girl on Medium, where people are continuing the conversation by highlighting and responding to this story.


KW Predatory Volley Ball

Alumni Watch. Congratulations Jesscia Andrews. Bordeaux Merignac Volley

Read full story for latest details.

Tag(s): Home

Elmira Advocate

THE APTLY NAMED STRANGE ST. WELLFIELD

 

It's the deception that gets to me. It's the ingenuous choice of wording. It's the never ending gilding of the lily in order to hide ugly truths. That's what I don't like about our regional government. This deception may partially be in order to protect the guilty. It may be in order to protect the names and reputations of so called "captains" of industry and or persons who built factories and provided jobs in Kitchener-Waterloo. However it's also about protecting their own butts. Some of these politicians have been around for decades and they literally have blood on their hands from decisions they've made and decisions they've avoided. 

Anybody remember the Uniroyal Tire plant on Strange St. for decades? How many know the long and toxic list of airborne contaminants that employees there worked in, some for decades? How many know the battles some of those employees fought to get pis* as* compensation from our provincial government's Workman's Compensation Board (WCB) later renamed to something more politically correct?   

Toxins included benzene, toluene, xylenes, chlorinated solvents and a plethora of other petroleum and rubber related toxins. These toxins don't just exist as air borne contaminants. If they leak, if they are mishandled, if they are negligently stored and most especially if they are buried on site they can and do migrate through the subsurface. Hence a nearby wellfield is the perfect way to introduce some of those same toxins that the Uniroyal workers were breathing, into the water supply. Many decades ago some BTEX chemicals (listed above) were found in low concentrations in some of the Strange St. wells. Who was the most likely contributor, Uniroyal or a nearby day care or school?

The initial Strange St. Wellfield consisted of wells K10A, K11, K13. This is an old wellfield. Current wells are named K10A, K11A, K13B, K18 and K19.  We are advised that well K13B is a direct replacement for well K13A completed in 2023. Oddly both K13B and K11A appear on the maps provided in the Grand River Source Protection Area reports as further west than the original wellfield. We are not told that wells K10A, K11 and K13 were still pumping and producing water for consumption until the very early 2000s. K18 and K19 on the other hand did not appear to be contributing to the drinking water supply until 2006 several years later. Also oddly they are located even further away (westwards) from the original wellfield than K11A and K13B.  Now I do have a memory of reading years ago that several of the Strange St. wells had been closed down and replaced with wells either slightly north or mostly west of their original location. 

Nobody apparently wants to point fingers or besmirch corporate heroes hence it seems to me that instead citizens drank contaminated water for years (just like in Elmira) while regional bureaucrats and politicians decided how best not to identify contaminated wells while either relocating them, shutting them down, or "managing" their pumping rates so as to stop pumping as the plumes approach the wells. 

When asked why our cancer rates keep rising I advise that it is the air we breathe, the food we eat and the water we drink. As soon as you stop doing that you stop feeding your body carcinogens. 

 


Brickhouse Guitars

Boucher JP Cormier JP 1091 12FTB Demo by Roger Schmidt

-/-

James Davis Nicoll

Favourite Crime / The Girl with a Thousand Faces By Sunyi Dean

Sunyi Dean’s 2026 The Girl with a Thousand Faces is a stand-alone historical fantasy.

Kowloon Walled City, August 1975: Mercy Chan is a ghost-talker. Here ability to talk to the many ghosts of Kowloon Walled City makes her very useful to triad leader Cobra Lily. Soon, Mercy will be Kowloon’s bulwark against disaster, which is fair since Mercy is ultimately to blame for the impending calamity.

Not that she would remember.


Kitchener Panthers

Panthers lose extra inning affair in Welland

WELLAND - The good news is the runs were down. The better news is it was an exciting game that required extra innings.

But the Kitchener Panthers couldn't slay the Jackfish, losing 3-2 in 10 innings Thursday in Welland.

The game was scoreless until the sixth on a James Smibert sac fly, before Welland scored again in the seventh.

But Malik Williams stepped up again, crushing his ninth home run of the season to dead centre to tie the game.

Smibert would hit a walk-off single in the 10th to finish it and hand Kitchener its seventh straight defeat.

Kitchener drops to 10-22 on the year, and have fallen to eighth place. Welland leads the league with a 23-10 record.

The Panthers continue on the road Friday night in London and Saturday in Guelph.

Kitchener isn't back home until Thursday, Aug. 6 at 7:05 p.m. against the Royals.

GET YOUR TICKETS NOW and #PackTheJack!

BOXSCORE

Github: Brent Litner

brentlintner starred documentdb/documentdb

♦ brentlintner starred documentdb/documentdb · July 30, 2026 16:00 documentdb/documentdb

MongoDB-compatible database engine for cloud-native and open-source workloads. Built for scalability, performance, and developer productivity.

C 3.4k Updated Jul 31


Chaslinux's blog

Preparing A World of Retro Computing (WoRC) prize

The World of Retro Computing, 2026

The World of Retro Computing is an annual event, held within Waterloo-Region, southwestern Ontario, Canada. In past years the event has been held in different cities: Cambridge, Kitchener, and this (2026) year in the city of Waterloo.

The event is a free-to-attend 2-day expo of retro computer, and gaming hardware (though I believe any donations are appreciated by the event organizers). The expo includes hands-on vintage computers and gaming displays, guest speakers, vendors, workshops, repair stations, a LAN party area, and more activities.


House of Friendship

Providing a Safe Space

Melina has a very personal reason for the work she does.

As Integration Lead at Hospice Waterloo Region, Melina works to provide support to men in House of Friendship’s ShelterCare program who are struggling with the grief that comes with losing a loved one to an overdose. 

And Melina can provide that support to others because she has lived through it herself. 

“I lost so many people to drug poisoning,” said Melina. “It started when my son’s friend died at the tender age of 17.

“It just gave me a sense of purpose and meaning to take all this sadness, anger, and shock I was experiencing.

I refused to let them die without being able to honour them.”

Melina helps guide the men in ShelterCare who are experiencing this kind of grief. 

“I remember the first group session I held, and it was only a couple of people,” said Melina. “But I’m finding more and more the men are coming in and they want to talk.”

Men in the ShelterCare program have often experienced a series of losses by the time they become homeless.

“They have lost their sense of purpose, lost their jobs, lost their homes, lost their families, lost their friends, lost their children – all of these relationships,” said Melina. “But most importantly, they have lost a sense of who they are.”

Melina works to help them process these losses and acknowledge the emotions that they are feeling.

Melina also supports the men with writing memorial messages when a participant or friend loses their life to a drug poisoning, and gives them the space they need to have their voices heard.

“Every person has a story, and I want to give them that space to share them.”

The post Providing a Safe Space appeared first on House Of Friendship.


Code Like a Girl

The AI Evalathon That Changed How I Think About Testing AI Agents

Inside my first Voice AI evaluation competition and the lessons every AI engineer should learn about reliability, failure modes, and…

Continue reading on Code Like A Girl »


Elmira Advocate

THE LANCASTER ST. WELLFIELD - A HISTORY OF LOW WAGES, HIGH PROFITS AND HIGH ENVIRONMENTAL & HEALTH DAMAGES

 

Many of the longtime nearby residents don't remember the "good old days".  The stench of acrid, acidic fumes leaving the site. The generally modest albeit well built homes nearby on Edwin St., Loiusa St., St. Leger etc. A company called Pannill Veneer operated on the site for decades before it closed down. Prior to Panill Veneer however was the Breithaupt Tannery. Solvents, acids and heavy metals were common and well recognized from the tannery industry. It operated approximately from the 1880s until about 1950 before shutting down. There were other tanneries in Kitchener-Waterloo and they too made a mess and left the mess for others to clean up. These industries like so many others were protected by the politicians that they helped to get elected. These same politicians minimized the negative environmental and health effects of these companies both on employees and residents while they were operating and making money as well as after they cut and ran. This is what politicians do especially if they hope to have the funds to get re-elected.

The very same politicians and their successors allowed all the anti social aspects of these heavy, stinking and loud industries, often situated beside residential areas, without proper safeguards or even reasonable mitigating efforts. Then when they packed up and departed little to no effort was made to hold them accountable to clean up the mess they left behind. These were very unhealthy messes combined with high costs to clean them up. Politicians did what they always do. They lied like dogs and passed the costs on to the public taxpayers as much as possible. The Breithaupt Tannery $ 9 million cleanup was the most expensive in Kitchener's history. It was funded by the City of Kitchener (taxpayers), The Region of Waterloo (taxpayers) and the developer (Queensgate Dev't.) who by the way complained that the Province of Ontario (taxpayers) failed to chip in.  Three levels of taxpayers but all out of the same pockets.

Never any health studies, never any environmental studies until after a developer decided they could make money on the site. Breithaupt Tannery did not just mess up people's health through noise and air emissions. They also contaminated the nearby Lancaster Wellfield which supplied water to Kitchener citizens. How many of them died prematurely and or with compromised health issues while the bast**d politicians and industrialists laughed all the way to the bank? 

The nearby Lancaster Wellfield has been shut down now for a very long time. Do you think they shut it down the day the Tannery closed? Did they shut it down before the toxic contaminants reached the drinking wells? Meanwhile Waterloo Region are recommissioning other shut down, contaminated wells so why not these? Allegedly there has been a major cleanup. Or was it? Regardless if we are so desperate for water the Region can reopen these wells with or without an Environmental Assessment. Just like local industry in Elmira and K-W,  Waterloo Region knows that Environmental Assessments are easy to "fix". Afterall it's politicians who write the legislation, warts and loopholes and all.


Capacity Canada

Youth volunteering: Building the future of nonprofit leadership

Written by: Ayomide Awesu, Co-op Student, Public Relations Assistant, Capacity Canada, aspiring communications and marketing professional, entrepreneur, and creative storyteller passionate about digital media and community engagement.

Youth volunteering is becoming more important in our community and more in the nonprofit sector. I believe young people bring creativity, energy and fresh perspectives to nonprofit organizations. Which helps nonprofits expand their target audience and explore new opportunities and helps them stay connected to the world.

Volunteering gives youth a chance to understand how nonprofits work and how small actions/events can make a big impact. This builds confidence, responsibility and helps us discover what we care and want to learn more about.

Learning through experience

As a student currently completing my co-op placement with St. Mary’s High School at Capacity Canada, I’ve seen how much youth involvement matters. Working with different staff and community leaders in my own personal life has changed my perspective. I have learned how different projects come together and how we use teamwork and our collected skills to plan events.

Before this placement I volunteered at my church and summer camps. Those experiences taught me how small actions for example, helping organize an event or supporting younger kids can make a difference. Each opportunity helped me grow and be more confident and understand how to be a leader.

Challenges and opportunities

Even with all these different benefits, youth volunteering can be tough sometimes. Some youth don’t know where to start or worry if their opinions will be heard and acted upon. Some face barriers like transportations and balancing school. However nonprofit organizations make volunteering easier since they have more flexible roles, mentorship and clear guidance.

Questions to reflect on:
  • Why do youth choose to volunteer?
    Is it for experience, connection to community or purpose?
    Each reason shapes how we volunteer.
  • Who benefits from youth volunteering?
    Is it the organization, the community or the volunteers? This helps us discern how meaningful it is.
  • Whose voice is heard in youth volunteering?
    Are youth included in decision making or only in participation? There should be full engagement and responsibility for volunteers.
  • How does volunteering create an impact?

Altogether my experiences have shown me that volunteering is one of the most meaningful ways youths can and learn with their community. Working in a nonprofit for my co-op placement, helping at church and volunteering at camps and events have all shown me how to make a difference and care for the world and people around me.

International Volunteer Year reminds us that every volunteer contribution matters. By creating meaningful opportunities for youth to get involved, nonprofit organizations are investing not only in their missions but also in the next generation of community leaders.

Youth have the creativity, energy and independence that nonprofits need to stay connected. When we choose to volunteer and help, we are shaping the type of world that we want to live in.

Written by:

♦Ayomide Awesu, Co-op Student & Public Relations Assistant, Capacity Canada

Ayomide is currently a Highschool student taking a co – op credit. She has plenty of volunteer experience in communication and technology from leading at her church, running her own business and volunteering in graphic design and communication camps. She has developed skills in marketing and operating design for live streams and blogs. She also has customer service skills by maintaining a good relationship with clients/customers for her business and learning how to efficiently use different creating platforms including; canva, adobe and presentations.

Email: ayo@capacitycanada.ca

The post Youth volunteering: Building the future of nonprofit leadership appeared first on Capacity Canada.


Code Like a Girl

Your URL Shortener Need Not Host Anything To Get Blocked

A shortener lends credibility and every user draws from the same account

Continue reading on Code Like A Girl »


Code Like a Girl

Why Most Ecommerce Apps Get Downloaded and Then Ignored

♦Image courtesy ChatGPT

Getting someone to download a shopping app has never been easier. Getting them to open it a second time is a different problem entirely.

That gap between install numbers and actual repeat purchases is where most ecommerce app investments quietly fail. Retailers assume the hard part is getting noticed. In reality, the hard part starts the moment the app is already on someone’s phone, competing for attention against every other app they’ve ever downloaded and mostly forgotten.

Australian shoppers have shifted decisively toward mobile it’s now where they browse, compare, and pay, often without a second thought. But that shift only rewards the businesses that treat the app as a conversion system, not a digital brochure with a buy button attached.

Here’s what actually separates an ecommerce app people keep using from one that quietly disappears off their home screen.

Mobile Shopping Isn’t Growing Because of the Apps. It’s Growing Despite Most of Them.

A few things are driving Australians deeper into mobile shopping regardless of app quality:

  • It’s simply faster. One-tap checkout, saved payment details, and real-time order tracking remove the friction that used to slow a purchase down.
  • It feels personal. Apps that surface relevant products and offers based on past behavior keep people coming back the ones that don’t, don’t.
  • Payments are safer and quicker than they used to be, which lowers the psychological barrier to buying on impulse.

None of this is optional anymore, it’s the baseline expectation. Which means the businesses that only meet the baseline are the ones getting lost in it.

The Features That Actually Move the Conversion Needle

A high-converting shopping app isn’t defined by its feature count. It’s defined by how little friction stands between “I’m curious” and “I bought it.” A few features do most of the work:

Search that assumes the user is impatient. Predictive autocomplete, smart category filters, price-range sliders, and rating filters all exist for one reason: cutting down the time between opening the app and finding something worth buying.

Recommendations that feel earned, not random. Suggestions based on real browsing and purchase history read as helpful. Generic “you might also like” blocks read as filler, and users learn to ignore them fast.

Checkout with the fewest possible steps. Guest checkout, saved addresses, and stored payment methods aren’t nice-to-haves they’re the difference between a completed sale and an abandoned cart.

Wishlists that come with a nudge. A saved item is only useful if the app follows up a restock alert, a price drop, a gentle reminder instead of letting it sit forgotten.

Product pages that answer objections before they’re raised. Multiple angles, honest descriptions, clear shipping details, and visible reviews all reduce the hesitation that kills a purchase at the last second.

Notifications that respect the user’s attention. Done well, they recover abandoned carts and win back lapsed shoppers. Done carelessly, they’re the reason people delete the app entirely.

Where AI Is Actually Changing the Shopping Experience

AI in ecommerce apps has moved past being a novelty feature it’s now doing quiet, structural work across the shopping journey:

  • Chatbots that resolve real queries and product comparisons around the clock, not just deflect them to a support queue.
  • Predictive analytics that forecast demand from historical patterns, letting retailers plan campaigns and stock before demand spikes rather than reacting to it.
  • Dynamic pricing that adjusts based on real-time demand signals, rather than static seasonal discounts.
  • Fraud detection that reads behavioral and device patterns to catch suspicious transactions before they become chargebacks.

The businesses treating these as core infrastructure not add-ons are the ones pulling ahead on both margins and customer trust.

What to Actually Check Before Choosing a Development Partner

Most of the risk in an ecommerce app project gets decided before a single screen is designed — in who you choose to build it.

Do they have real ecommerce-specific experience, not just general app development? Retail has particular failure points — cart abandonment, checkout drop-off, retention that a team without that specific background won’t know to design around.

Can they show technical depth across the stack you’ll need Shopify, Magento, WooCommerce integrations, or fully custom builds — rather than a one-size-fits-all template approach?

Do they take compliance seriously by default? Australian Privacy Principles and PCI-DSS aren’t optional extras; a partner who treats them as an afterthought is a liability waiting to surface later.

What happens after launch? Apps fail quietly in the weeks after release without ongoing monitoring, patches, and performance tuning. A development partner without a real post-launch process is handing you a half-finished project.

Are you comparing value or just quotes? The cheapest bid rarely accounts for the cost of rebuilding what wasn’t done right the first time.

Actionable Checklist

✔ Map the conversion journey before designing a single screen

✔ Prioritize checkout friction reduction over feature count

✔ Treat AI (recommendations, fraud detection, forecasting) as infrastructure, not add-ons

✔ Confirm Australian Privacy Principles and PCI-DSS compliance upfront

✔ Choose a partner with a defined post-launch support process, not just a launch date

Frequently Asked Questions

Q1.How long does ecommerce app development typically take?

A. It depends heavily on scope. A straightforward app can take a few months; one with custom integrations, AI-driven personalization, or complex payment logic will reasonably take longer. Timeline should track complexity, not the other way around.

Q2.Should the app be built for iOS, Android, or both?

A. Most retailers benefit from cross-platform development from day one, so they’re not choosing between reach and consistency. The right call depends on where your specific customers already are.

Q3. Can a new app integrate with our existing store and systems?

A. Yes modern ecommerce apps commonly integrate with platforms like Shopify and WooCommerce, along with payment gateways, inventory systems, and CRMs, so data stays synchronized rather than living in silos.

Key Takeaways
  • Mobile shopping growth in Australia rewards convenience and personalization by default apps that only meet that baseline get lost in it.
  • The features that actually drive conversion (fast checkout, smart recommendations, low-friction search) matter more than raw feature count.
  • AI is now doing structural work in ecommerce forecasting, fraud detection, and pricing not just customer-facing chat.
  • Most project risk gets set at the vendor-selection stage, well before development starts.

Building or rebuilding a shopping app that actually converts takes more than checking feature boxes it means starting from how your specific customers browse and buy. 7 Pillars works with Australian and New Zealand retailers on exactly this kind of ecommerce app development, from planning through post-launch support.

Why Most Ecommerce Apps Get Downloaded and Then Ignored was originally published in Code Like A Girl on Medium, where people are continuing the conversation by highlighting and responding to this story.


Brickhouse Guitars

Moon Valley AP2 demo by Roger Schmidt

-/-

Cordial Catholic, K Albert Little

I Saw JESUS in High School! #Jesus #Bible #miracle #God

-/-

Cordial Catholic, K Albert Little

A Protestant Pastor Explains Binding and Loosing in Scripture

-/-

James Davis Nicoll

Just Like Old Times / Warhammer: the Old World Roleplaying Game By Dominic McDowall & Pádraig Murphy

Dominic McDowall and Pádraig Murphy’s 2026 Warhammer: the Old World Roleplaying Game is a secondary-universe tabletop fantasy roleplaying game (TTFRPG). The core rules are divided between Warhammer: the Old World Roleplaying Game, Player’s Guide1 and Warhammer: the Old World Roleplaying Game, Gamemaster’s Guide2.

You may want to tack ​“black comedy” in front of that word ​“fantasy” up above.

But first! A word about Games Workshop’s Warhammer, formerly Warhammer Fantasy Battle.

This is long. Very long. Three or four reviews long, which is why I don’t review more TTRPGs.


Github: Brent Litner

brentlintner starred openai/codex-security

♦ brentlintner starred openai/codex-security · July 29, 2026 19:02 openai/codex-security

OpenAI's Codex Security CLI and TypeScript SDK for finding, validating, and fixing security vulnerabilities. npm: www.npmjs.com/package/@op…

TypeScript 8.5k Updated Aug 4


KW Predatory Volley Ball

Alumni Watch. Congratulations Ava Ebert. UWO Purple Blanket Profile

Read full story for latest details.

Tag(s): Home

Code Like a Girl

Before We Compare Solutions, We Need a Way to Measure Them

Episode 1:

Imagine two developers solving the same problem.

Both solutions return the correct answer. Both pass every test case. Both get deployed to production without any issues.

So how do you decide which one is actually better?

In software engineering, getting the correct output is only the first step. As applications grow and start handling larger amounts of data, the gap between two “correct” solutions can become enormous. One solution might continue working smoothly as traffic increases, while another might gradually slow down.

To make those decisions objectively, we need a way to measure our code. That is exactly what this episode is about.

When you’re just starting out, the first question you ask about any piece of code is:

“Does it work?”

And honestly, that’s the right place to begin.

If your solution doesn’t produce the correct result, nothing else matters. However, as you gain experience, you’ll often find yourself in situations where multiple solutions solve the same problem correctly.

That’s when a different question starts to matter:

“Which solution is more efficient?”

This is where Time Complexity and Space Complexity come into the picture.

What Are We Actually Measuring?

When we talk about the complexity of an algorithm, we’re usually interested in two things.

The first is time complexity, which describes how the number of operations an algorithm performs grows as the input size increases. In simple terms, it helps us understand how much additional work the algorithm has to do when it receives more data.

The second is space complexity, which tells us how much additional memory the code needs as the input size grows.

One thing that often confuses beginners is that we are not measuring actual seconds or megabytes.

We are not asking how fast your laptop runs compared to mine. We are not comparing JavaScript against Java or Python. Those things can vary depending on hardware, operating systems, compilers, and many other factors.

Instead, we focus on something much more useful:

How does the solution scale as the input gets larger? What happens if the input doubles? What happens if it becomes ten times larger? What happens if it grows from a thousand items to a million?

That way of thinking is what makes complexity a reliable measuring tool regardless of the machine or language you are using.

Big O Notation

Big O Notation is simply the language we use to describe that growth.

The “O” stands for “order of,” and the expression inside the brackets tells us how the algorithm grows relative to the size of the input. The input size is usually represented by the letter n.

At first glance, the notation may look mathematical and intimidating, but the underlying idea is surprisingly simple. Once you understand the common patterns, reading Big O becomes second nature.

The Most Common Complexities You’ll SeeO(1): Constant Time

An algorithm is considered O(1) when the amount of work stays the same no matter how large the input becomes.

For example, imagine you have an array containing thousands or even millions of names, and you want to access the first item.

function getFirstItem(arr) {
return arr[0];
}

Whether the array contains 10 items or 10 million items, retrieving the first element still requires the same operation.

The input size has no impact on the amount of work being done, which is why this is called constant time.

O(n): Linear Time

With O(n), the amount of work grows in direct proportion to the size of the input.

Suppose you want to find a particular name inside an unsorted array.

function findName(arr, target) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === target) {
return i;
}
}
return -1;
}

Since the array isn’t sorted and doesn’t provide any shortcuts, you may have to check each item one by one.

If there are 10 items, you might inspect up to 10 elements.

If there are 1,000 items, you might inspect up to 1,000 elements.

If there are a million items, you might inspect up to a million elements.

The work increases alongside the input size, so this is O(n), also known as linear time.

O(n²): Quadratic Time

Quadratic time usually appears when you have a loop running inside another loop.

function printAllPairs(arr) {
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length; j++) {
console.log(arr[i], arr[j]);
}
}
}

Here, every element is paired with every other element.

If the array contains 10 items, the inner operation runs roughly 100 times.

If the array contains 100 items, it runs roughly 10,000 times.

The growth accelerates quickly, which is why quadratic solutions often become problematic when working with large datasets.

Many performance bottlenecks can be traced back to an unnoticed O(n²) operation.

O(log n): Logarithmic Time

Logarithmic complexity often feels strange when you first encounter it, but the idea is actually very intuitive.

Instead of examining every item one by one, the algorithm repeatedly cuts the problem in half.

Think about searching for a word in a physical dictionary.

You wouldn’t start from page one and move forward page by page. Instead, you would open the dictionary somewhere near the middle, check whether your word comes before or after that section, eliminate half the remaining pages, and repeat the process.

Each step removes half of the remaining work.

That is the essence of O(log n).

Because the search space shrinks so aggressively, the number of steps grows very slowly. Even when dealing with extremely large datasets, logarithmic algorithms remain remarkably efficient.

We’ll see a classic example of this when we cover Binary Search later in the series.

O(n log n)

This complexity appears frequently in efficient sorting algorithms.

It sits somewhere between O(n) and O(n²).

Algorithms with O(n log n) complexity usually combine two ideas:

  1. They process all elements.
  2. They repeatedly divide the problem into smaller pieces.

Popular sorting algorithms such as Merge Sort and Quick Sort often achieve this complexity.

As datasets become larger, O(n log n) performs dramatically better than O(n²), which is why it is considered the standard target for efficient sorting.

Visualizing the Difference

If we arranged these complexities from most efficient to least efficient as the input grows, the order would look like this:

O(1) → O(log n) → O(n) → O(n log n) → O(n²)

You can think of them like this:

  • O(1) stays flat no matter how large the input becomes.
  • O(log n) grows very slowly.
  • O(n) grows steadily alongside the input.
  • O(n log n) grows faster than linear time but remains practical.
  • O(n²) rises sharply and becomes expensive very quickly.

This ranking is something you’ll use constantly as you learn algorithms and data structures.

Whenever you encounter a new solution, one of the first things you should ask is:

“Where does this algorithm sit on that scale?”

What About Space Complexity?

Everything we’ve discussed so far has focused on time, meaning the amount of work being performed.

Space complexity follows the same idea, except we’re measuring memory usage instead of steps.

Consider this example:

function doubleAll(arr) {
let result = [];

for (let i = 0; i < arr.length; i++) {
result.push(arr[i] * 2);
}

return result;
}

The new array grows alongside the input array. If the input doubles in size, the extra memory required also doubles.

Because the memory usage grows with the input, this is O(n) space.

Now compare that with:

function sumAll(arr) {
let total = 0;

for (let i = 0; i < arr.length; i++) {
total += arr[i];
}

return total;
}

Here, we’re only using a single variable regardless of how large the input becomes.

Whether the array contains 10 elements or 10 million, the extra memory remains essentially the same.

That makes this O(1) space.

In real-world development, you’ll often encounter trade-offs between time and memory. Sometimes using extra memory can significantly reduce execution time. Other times, minimizing memory usage may require additional processing.

Understanding both time and space complexity helps you make those trade-offs consciously rather than accidentally.

One Practical Rule to Remember

When calculating Big O, we focus only on the part of the algorithm that grows the fastest.

For example:

  • O(n + 50) becomes O(n)
  • O(3n) becomes O(n)
  • O(n² + n) becomes O(n²)

Why?

Because Big O is concerned with long-term growth.

As the input becomes very large, constant values and smaller terms become insignificant compared to the dominant term.

The goal is not to count every operation perfectly.

The goal is to understand how the algorithm behaves as the input continues to grow.

The Habit That Will Change How You Read Code

From now on, whenever you look at a piece of code, train yourself to ask a simple question:

"As the input gets larger, what happens to the amount of work being done?"

If the work stays the same, you're probably looking at O(1).

If it grows alongside the input, it's likely O(n).

If you see a loop inside another loop, there's a good chance you're dealing with O(n²).

If the problem size keeps getting cut in half, you're probably looking at O(log n).

Developing this habit is one of the most valuable steps you can take as a programmer. It changes the way you read code, write code, and evaluate solutions.

In the next episode, we'll move into Arrays. Now that you understand how to measure performance, the operations we discuss will have much more meaning because you'll be able to analyze not just what they do, but also how efficiently they do it.

Before We Compare Solutions, We Need a Way to Measure Them was originally published in Code Like A Girl on Medium, where people are continuing the conversation by highlighting and responding to this story.


Code Like a Girl

The Research on Deep Work Says Your Open Floor Plan Is Costing You Millions

I’ve sat through more office redesign meetings than I want to admit.

Continue reading on Code Like A Girl »


Code Like a Girl

Why Some Teams Excel While Others Collapse

Knowledge, skills, and resources don’t decide which teams win and which ones stall.

Continue reading on Code Like A Girl »