WRDashboard

Fork Me on Gitlab

Articles

James Davis Nicoll

Tickling The Dragon’s Tail / Cherish Farrah By Bethany C. Morrow

Bethany C. Morrow’s 2022 Cherish Farrah is a horror novel.

Teens Cherish Whitman and Farrah Turner have been best friends since they met in fourth grade. Their common ground is obvious: Cherish and Farrah are the only two black girls in their upscale neighborhood. However, their parents could not be more dissimilar. Farrah’s parents are Farrah’s biological parents. Cherish was adopted by a rich white couple.


Carrie Snyder: Obscure Canlit Mama

Day 6 prompt for a creative pause

Day 6 Prompt

Draw & write. What’s in your pocket and why?

Notes: Items are from the pockets of my pink ski jacket. Materials used: black pen, crayon, watercolours. Songs included “Landslide” by the Chicks, “Quiet – Stripped” by MILCK, and “Battlefields” by Twin Flames. I’ve been spending way more time, proportionally, on the drawing piece of each “pause”; drawing and colouring is such a peaceful activity. I wrote the answer to why these items might have been in my pockets on the following page (approximately 5 minutes; no music while writing).

xo, Carrie


KWLUG

KWLUG - Dinner at Crabby Joe's, Downtown Kitchener

Monday, Dec 16 2024, 07:00pm

Location:

We are continuing the dinner meetup tradition at Crabby Joe's in downtown Kitchener, starting at 7pm. Note that this restaurant meeting is on a Monday.

This is a supplementary informal meeting; we will still hold hybrid meetings for technical topics.

The restaurant is located at 70 King St E in Kitchener, at the corner of King and Frederick St. Here is a map. 

Parking is free in the Crabby Joe's parking lot with purchase. The waitstaff will scan your ticket when you leave, which will permit you to leave the parking lot for free. In addition, parking at City of Kitchener parking lots is free after 5pm. The nearest City parking lots are at 40 Ontario St S, or 5 Charles St E.

You can probably just show up, but the organizers would find it helpful if you RSVPed to dinner@kwlug.org 

Code Like a Girl

How to Gain the Edge with Ethical AI Leadership

Driving Innovation and Trust in the Age of Artificial Intelligence

Continue reading on Code Like A Girl »


Code Like a Girl

Integrate Clerk Auth In Django Rest Framework using a token from the frontend

In this blog, I’ll walk you through how to integrate Clerk with Django Rest Framework using a token passed from your front end. I assume…

Continue reading on Code Like A Girl »


Hoesy, Michalos & Associates

How Bankruptcy Works for Debtors and Creditors in Canada

Filing for bankruptcy affects both the person filing (the debtor) and those they owe money to (the creditors). Understanding how bankruptcy works from both perspectives can help you make informed decisions about your financial future.

Bankruptcy and Debtors

Bankruptcy in Canada is a debt relief solution designed to help the honest but unfortunate debtor eliminate the burden of overwhelming debt. It’s a legal process legislated under the Bankruptcy and Insolvency Act (BIA) that provides protection from creditors while ensuring fair treatment of everyone involved.

What is a Debtor in a Bankruptcy Case?

A debtor is someone who owes money and cannot pay their debts as they come due. To be eligible for bankruptcy in Canada, you must meet three requirements: you owe at least $1,000, you live or have assets in Canada, and you are insolvent.

Being insolvent means two things: you cannot pay your bills when they’re due, and your total debts exceed the value of all your assets combined. For example, if you added up everything you own and it’s worth less than what you owe to creditors, you would be considered insolvent.

Before You File Bankruptcy

A bankruptcy can only be filed with a Licensed Insolvency Trustee. Your first step is meeting with an LIT for a free consultation. During this meeting, your trustee will review your debts, assets, income, and expenses to determine if bankruptcy is your best option. They may also discuss alternatives like a consumer proposal if that better suits your situation.

There are several actions you should avoid before filing:

  • Transferring or selling assets to family or friends
  • Taking on new debt or maxing out credit cards right before filing
  • Paying some creditors while ignoring others
  • Hiding information about potential inheritances or assets
  • Making large purchases on credit

These actions could cause problems with your filing. The law requires your trustee to review transactions before bankruptcy, and unusual activities could affect your ability to receive a discharge.

The Bankruptcy Process for Debtors

If you decide to file bankruptcy, you’ll sign legal documents, including an “Assignment in Bankruptcy” and a “Statement of Affairs” listing all your assets and debts. Your bankruptcy officially begins when these documents are filed with the Office of the Superintendent of Bankruptcy.

Filing bankruptcy immediately protects you from creditor actions through a legal “stay of proceedings.” This means creditors must stop collection calls, wage garnishments, and legal actions against you. If a creditor continues to contact you, let your trustee know, and they will handle the situation.

Once you file, you must:

  • Surrender non-exempt assets to your trustee
  • Report your monthly income and expenses
  • Attend two credit counselling sessions
  • Make monthly payments as required
  • Assist your trustee in administering your bankruptcy

Your trustee will sell any non-exempt assets and distribute the proceeds to your creditors. However, you’ll be able to keep basic necessities, including:

  • Basic household furnishings and personal effects
  • Tools needed for your work
  • A vehicle worth up to the provincial exemption limit
  • Most pension and RRSP savings
Effect of Bankruptcy on Debtors

Filing bankruptcy has several effects on your financial life. The most immediate benefit is that collection calls and legal actions against you stop. Bankruptcy protection, through a stay of proceedings, gives you breathing room to deal with your debts through bankruptcy.

A discharge from bankruptcy legally releases you from the obligation to repay debts that existed when you filed bankruptcy. Most people filing a first bankruptcy with no surplus income will receive an automatic discharge after 9 months if they have completed all their duties. Not all debts are eliminated by bankruptcy. Some debts survive bankruptcy, including support payments, court fines, and student loans if you left school less than seven years ago. Your trustee will explain which of your debts will be discharged and which will remain.

Bankruptcy will affect your credit rating; however, this impact is temporary. The bankruptcy will appear on your credit report for 6 years after your discharge in a first bankruptcy. You can begin to rebuild your credit rating immediately by getting a secured credit card and making all payments on time.

Unless you have joint debts, your bankruptcy will not impact your spouse or their credit report. If you have joint debts (both names are on the debt), you may want to discuss filing a joint bankruptcy or proposal with your trustee.

Role of the Licensed Insolvency Trustee

A Licensed Insolvency Trustee is an officer of the court who must remain impartial during the bankruptcy process. An LIT is neither debtor nor creditor-friendly but acts as a neutral administrator. They ensure bankruptcy laws are followed fairly by both debtors and creditors. While they guide you through the bankruptcy process, they also have legal duties to investigate your finances and protect creditor interests.

At the start of bankruptcy, the Licensed Insolvency Trustee:

  • Reviews your financial situation and will explain all debt relief options
  • Prepares and files bankruptcy documents
  • Notifies all creditors about the bankruptcy filing
  • Takes control of non-exempt assets

During the bankruptcy, the trustee:

  • Collects monthly payments from the debtor
  • Ensures the debtor completes required counselling and duties
  • Reviews and accepts claims from creditors
  • Investigates the debtor’s financial affairs
  • Sells non-exempt assets for maximum value
  • Distributes available funds to creditors
  • Responds to questions from both debtors and creditors

At the end of bankruptcy, the trustee:

  • Reviews whether all duties are completed
  • Applies for the debtor’s discharge
  • Issues the Certificate of Discharge
  • Makes final distribution to creditors

Throughout the process, the LIT protects the rights of both debtors and creditors while maintaining the integrity of the bankruptcy system.

Understanding Creditor Rights Who is a Creditor in Bankruptcy?

A creditor is any person or company you owe money to when you file bankruptcy. There are two main types of creditors in bankruptcy: secured and unsecured. Secured creditors hold rights over specific property, like a bank with a mortgage on your house. Unsecured creditors, like credit card companies, have no claim on specific assets.

When you file bankruptcy, unsecured creditors must immediately stop trying to collect from you directly. Instead, they need to file a claim with the Licensed Insolvency Trustee to get a share of any money available from the bankruptcy. The amount they ultimately receive depends on funds realized by the trustee and how many other creditors file claims.

Secured creditors do not lose their rights under your loan agreement. If you want to keep property that serves as collateral – like your house or car – you must continue making regular payments on these secured loans, even during bankruptcy.

How Creditors Get Paid in Bankruptcy

Creditors receive payment from two main sources in bankruptcy: the sale of non-exempt assets and the debtor’s required monthly payments. The trustee collects these funds and distributes them according to a legal priority system set out in bankruptcy law. To receive payment, creditors must file a proof of claim with the trustee.

How Creditors Are Notified

When you file bankruptcy, your trustee must notify all your creditors within five business days. The notification includes information about the bankruptcy and instructions for filing claims. Creditors must stop all collection actions immediately due to the legal stay of proceedings.

Creditors have the right to:

  • File a claim for money they are owed
  • Request a meeting of creditors
  • Ask questions about your financial affairs
  • Object to your discharge if they have grounds
  • Continue collection on debts that survive bankruptcy (such as support payments or court fines).

Your employer is not notified that you filed bankruptcy unless you have a wage garnishment. In that case, your trustee will notify the payroll department to ask them to stop taking money from your pay.

The OSB will also notify the credit bureau when you file, including the date of filing and type of proceeding (a bankruptcy or consumer proposal). They update the credit reporting agencies at the end of your bankruptcy with the date of discharge.

Other than that, there is no public advertising or publication that you filed for bankruptcy in Canada.

How Do I Claim or Declare Bankruptcy?

Before you file, the trustee will review all your debt relief options so you can decide if bankruptcy is right for you.

The trustee will ask questions about your income, assets, and debts (who you owe). If you cannot afford to repay your debts in full, the trustee may recommend bankruptcy, but they might also suggest you consider filing a consumer proposal as an alternative to bankruptcy if this makes more sense for your financial situation.

If you are considering bankruptcy, talk with a Licensed Insolvency Trustee today.

Get a Free Consultation

The post How Bankruptcy Works for Debtors and Creditors in Canada appeared first on Hoyes, Michalos & Associates Inc..


KW Habilitation

CTV News and Cambridge Today Interview Project SEARCH Interns at Cambridge Memorial Hospital

♦Project SEARCH interns with skills trainer and instructor at Cambridge Memorial Hospital. ♦Sam Devereaux Intern in the Medical Day Clinic at the Cambridge Memorial Hospital. Photo from CTV News clip.

This week, CTV News and Cambridge Today visited Project SEARCH interns to get the inside scoop on this incredible collaborative program! 

Click here to view the full news story from CTV.

Click here to view the full news story from Cambridge Today.

♦Marina Pereira, an intern in the Medical Device Reprocessing Department at the Cambridge Memorial Hospital. Photo from CTV News clip.

Project SEARCH is a skill building employment based program for students ages 18-21 who have a developmental disability. In partnership with KW Habilitation, Waterloo Catholic District School Board, St. Mary’s General Hospital and Cambridge Memorial Hospital, Project SEARCH allows students to learn experiences first-hand that teach them skills that will help them to be successful in volunteerism or employment, upon graduation.

♦Robert Woods, an intern in Human Resources at the Cambridge Memorial Hospital. Photo from CTV News clip.

This year we have four new students at the Cambridge Memorial Hospital location who are gaining hands on experience exploring different areas of the hospital including food services, the Medical Day Clinic, the Medical Device Reprocessing Department, and in Human Resources.

We asked some of the current students at the Cambridge Memorial Hospital to share their thoughts on their experience this year so far and here’s what they had to say:

♦Hannah Felker an intern in Food Services at the Cambridge Memorial Hospital. Photo from CTV News clip.

“I’m loving being in a new environment,” says Marina.

 “I like talking to different staff in departments,” says Hannah.

 “I’m happy to learn everything I can from here,” says Sam. 

“I’m looking forward to the internships,” says Robert.

“Johanna and I are so impressed with the dedication our interns have put into navigating transportation and way-finding around the hospital. Lots of learning to come!” says Rachel (Skills trainer) and Johannah (Instructor).

 

The post CTV News and Cambridge Today Interview Project SEARCH Interns at Cambridge Memorial Hospital appeared first on KW Habilitation.


Elmira Advocate

LAST TRAC MEETING WAS 2 1/2 WEEKS AGO AND NOW NEXT ONE (Mon. DEC. 9/24) HAS 108 ADDITIONAL PAGES OF READING

 

Please I was a formal UPAC & CPAC member for ten years plus I still read these packages cover to cover and guess what: I am one of the few to do so. Other members whether lay persons (citizens) or so called professionals simply do not have either the time or the will to do that much reading prior to the two and three hour meetings. The credentialed ones in particular feel that their civic duty is being fulfilled when they volunteer for a municipal committee and then show up most of the time. Believe me lots of them struggle to do even that. This is a big reason that it is so easy for Lanxess, and the MECP to snow even the professionally trained TRAC members. Think of (professional) hockey teams playing each other but only one is getting paid for their game time, their preparation time, their travel time plus expenses. Volunteers let their volunteer work slip before they let their income producing work slip.

I'm still reading the 108 pages I received three days ago. Some is easy and some is tough sledding but it all takes time. The AGENDA alone is 1 1/2 typed pages worth. The Minutes of the last meeting (Nov. 14/24) are only 9 pages and all the rest is new items i.e. "Updates". "Other Business" and "Correspondence Received" . Much of that is propaganda such as the new MECP 2028 Order to replace the old failed one. So now we get a new failed one. There will be an Update on the HHERA  which ignores the fatal sampling flaws in it from the very beginning. Screening of Enhanced Technologies for the off-site groundwater aquifers is another waste of time as if any of these worked then why weren't they embraced and used twenty or thirty years ago? Oh right because they cost more money to implement than talking about this cleanup will ever cost.. 

At the moment with little to no real discussion we are advised that the technologies being retained for further study include ISCO, ISCR, Bio-Augmentation and Bio-Stimulation.  All of these plus all of the rejected ones have some merit but once again the polluter is deciding everything including which will move forward and which won't. Look why doesn't Woolwich Township and the Region simply shut TRAC down for the good it does and declare everything clean? The wildlife in and around the downstream Creek won't complain  nor will the Old Order Mennonites who's health is affected. Certainly the MECP could divert more money say to ignoring Grassy Narrows and other environmental crises but do so in a more smooth and professional manner.


Elmira Advocate

IT SURE LOOKS TO ME AS IF TRAC HAVE ABANDONED EVEN THE APPEARANCE OF TRANSPARENCY

 O.K. so over a week ago TRAC's Support person (Stacey) refused to send my latest two critiques of GHD 's  (Luis A.) responses to TRAC's questions on to TRAC. Now that while problematic and not supportive of either accountability or transparency rested on Stacey's and Woolwich's shoulders. Meanwhile  I had already sent  these two strong critiques of Luis A.'s nonsense (his responses to Questions ! & 4) along to TRAC members and administration. Now frankly I don't give a fig for Woolwich's process and procedures because they routinely are designed to insulate and protect the guilty and dishonest versus doing anything positive or in the public interest. In fact this whole 34 year admitted failure to achieve drinking water standards or clean up the downstream toxins in the Canagagigue Creek has been an exercise in manipulation, dishonesty and deceit.  Woolwich Township have been front and centre in assisting this scam of the public. 

Magically it appears as if my two latest critiques will not be added to TRAC's correspondence list or included in the Minutes of their last meeting.  Compared to the brazen and deceitful actions Woolwich have taken over the years to support the conspiracy that everything possible is being done to clean up Uniroyal Chemical's messes, this is par for the course. All meaningful opposition must be silenced by whatever means possible. This included defamation of Woolwich volunteers (CPAC members) in Woolwich Township's  April 9, 2015 letter describing an alleged but phony "stakeholders' meeting" held at the Woolwich Administration building. Uniroyal and corporate successors along with fellow travellors are committed to walking away from their responsibilities while selling their self-serving version of reality to the public.    


Code Like a Girl

The Mystery Behind the Curtains: How SQL Processes Clauses in Your Queries

♦Photo by Simon Berger on Unsplash

As a beginner, it’s essential to have a good understanding of all steps in your learning journey. Skipping the fundamentals can leave gaps in your knowledge that might hinder your progress toward becoming a true SQL guru (this advice comes from my experience as a solo learner and many other SQL professionals🧑‍💻).

Think about how you prioritize your tasks based on urgency. It’s a common productivity tip that helps us manage our time effectively. Interestingly, SQL commands operate on a similar principle, following a specific order of execution that ensures efficient data processing.

Imagine SQL as a general leading a group of soldiers in a training camp. Each command is a soldier trained in tactics and strategies, ready to execute in a precise order to achieve the best results. What would happen if all the soldiers went to battle without any instruction? I don’t think it would end well for them or our SQL engine.

Overview of SQL Clauses

Before moving on to execution tactics, let’s remember all the clauses SQL provides us to solve our tasks:

  1. SELECT — Here is where you tell SQL what you want, not what you want to eat, but to retrieve from the database 😂; things named columns or attributes, such as FirstName and LastName from a table.
  2. FROM — When you go on a journey you take your map to know where you want to go, right? That’s the case here; to retrieve something SQL needs to know where it can find the information you demanded earlier, so here you specify the name of the table you want the data to come from.
  3. JOIN — This clause is a kind of host at a party that helps everyone meet everyone; in our SQL, it helps us to form a bond between 2 tables based on a common column.
♦Source: www.blazesql.com/blog/sql-meme

4. WHERE — When you throw a birthday party you give invitations to your guests, because you’ll not invite the whole neighborhood, right? (If you do, please remember to invite me too, even if it’s on Teams 😄). So you create a list and invite your best friends, relatives, and probably a few others; that’s what our WHERE clause does, helps us to filter the data based on certain conditions (more about WHEREclause here)

5. GROUP BY — Some games are played in teams with different roles (warrior, shaman, etc.). To be assigned to a team you need to have some skills in common with the others on the team. This is how GROUP BY clause works, it groups rows that share the same values in specified columns.

6. HAVING — Want to see the products that gave you a profit above $1000, use a HAVING clause in your query, because this clause is top-notch when it comes to putting conditions over an aggregate column (more about HAVING clause here)

7. ORDER BY — I don't know if it happened to you, but in sports classes, I often had the extreme position when we had a handball match, even though I wanted to be a goalkeeper. And that’s because our teacher ordered us according to our height at the beginning of each class. The same thing happens with the ORDER BY clause, it orders your rows ascending or descending based on a column you specify.

8. LIMIT or TOP— imagine that you’re going to a party and at the entry there is a huge guy who checks the tickets and doesn’t let in more than 100 people; the same way the LIMIT or TOP clause ensures only a certain number of rows are retrieved.

Who’s first?

Now that we have covered all the clauses typically used when composing a query, let's move on to see which clause comes first and what follows after it.

♦Made by Author with 💓

Let the party begin and see which clause has a VIP ticket 😄

  1. FROM — It seems that someone was fast and caught an extra VIP ticket and has the best seat. This indicates the data sources and the place from which we will extract data.
  2. JOIN (if applicable) — if a single table is not enough to get what we need, we apply the join and forward the link to another table we will use as a source.
  3. WHERE — No query contains a filter, especially when working on a real-world project. So after having the sources we need to take only the rows we need and meet our conditions.
  4. GROUP BY — We got what we needed and now we have to group the rows, especially when we use aggregation functions; so for each group, there will be a calculated sum, average, or any other calculation.
  5. HAVING — Let’s say that we need a further filter, but this time, based on an aggregation function; that’s where the HAVING clause is next in line and served.
  6. SELECT — now that we have all the data we found in our sources, we need only a few columns; It’s your turn, baby, because we need to search the columns that were specified in the SELECT clause.
  7. ORDER BY — the data came wave, after wave, but we need them to be organized and theORDER BY clause in next to be executed and align the data based on the value in the columns that were specified in this clause.
  8. LIMIT or TOP— want a certain number of rows? This clause is next and the one that caught the last ticket (unfortunately 🙃).
Let’s play a bit

Is theory effective without practice? True understanding comes from practical experience, so let's apply what we've learned.

We have 2 tables: Orders and Customers tables are linked by a foreign key on the customer_id column.

♦Made by Author with 💓

The request is to take the first 3 customers based on who spent the most after January 1, 2023, and the total spent is more than 1000;

You can already mark it as done by using the following query that contains all the clauses we’ve talked about before:

SELECT TOP 3 customer_name, SUM(order_amount) AS total_spent
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id
WHERE order_date > '2023-01-01'
GROUP BY customer_name
HAVING SUM(order_amount) > 1000
ORDER BY total_spent DESC
Interpretation of the code

This query will:

  1. FROM — establishes the source from which to retrieve the data -> orderstable
  2. JOIN — get in touch with the other source -> customerstable
  3. WHERE — filter orders to include only those placed after January 1, 2023.
  4. GROUP BY — group the resulting rows by customer_name
  5. HAVING — the second filter to take only the total_spent that is bigger than 1000
  6. SELECT — take customer_name and the total amount spent (total_spent) for each customer_name
  7. ORDER BY — order the results by total_spent in descending order
  8. LIMIT or TOP — using SQL Server as IDE I used TOP clause to limit the output to the top 3 customers.

🥁 Result is 🥁

♦Made by Author with 💓Common Mistakes And Tips
  • Common Mistake: Forgot to add the GROUP BY clause when we have HAVING

Tip: Remember that HAVING is used to filter aggregated data. Use WHERE for non-aggregated data (want more details about these 2, click here 🙃)

  • Common Mistake: Incorrectly ordering clauses.

Tip: Follow the logical order of execution I presented to you above to ensure your query runs correctly and has no error that will make you lose some good minutes of your life looking for the problem.

  • Common Mistake: Forgetting about the ONconditions for a JOIN

Tip: To avoid any syntax errors (for me these errors are like the red light on my way home after a long day 😣) make sure that your JOIN is correct and completely written. Missing an ON condition is like forgetting the wheels on your bike—you're not going anywhere fast.

  • Common Mistake: Assuming aggregation works without grouped data

Tip: Check your query before running it to ensure it contains all you need. Check twice, and run once.

  • Common Mistake: Not adding all the non-aggregating values from SELECTin the GROUP BY clause.

Tip: Omitting some of the non-aggregating values leads to the following error and forces you to review more than once your query.

♦Pretty familiar, also for me 😅Conclusion

Knowing the order of execution of the SQL clauses is like knowing the choreography of your dance. Each step (clause) must follow the previous one to create a harmonious and error-free query.

When you start writing your next query think of it as organizing a party: establish the location for your party (FROM), make sure the location has a parking spot (JOIN), choose your invitations (WHERE), group guests by their age (GROUP BY) because you still want your guests to enjoy your party with people to talk to, apply any special criteria (HAVING), arrange everything at the spot of your party (ORDER BY), and last but not least, manage the crowd ( LIMIT — for MySQL, or TOP — for SQL server, ROWNUM — for Oracle) at tables of n people.

Till next time I wish you:

Happy querying, and may your data always be well-behaved and your results ever insightful! 🤗

P.S.: Your query will not always contain all the clauses specified above, so even though not all of them are in, the order is the same.

P.S.S.: Below are some exercises to strengthen your new skills

Write a query to find:

  1. Top 5 Customers by Order Count
  2. Orders in the Last Month
  3. Total Revenue by Month

and here are the tables I used in my examples and you can use to solve the task above:

CREATE TABLE customers(
customer_id int NOT NULL PRIMARY KEY,
customer_name varchar(50) NULL
)

CREATE TABLE orders(
order_id int NOT NULL primary key,
customer_id int NULL,
order_date date NULL,
order_amount decimal(10, 2) NULL
)

INSERT customers(customer_id, customer_name) VALUES (1, N'Alice')
INSERT customers(customer_id, customer_name) VALUES (2, N'Bob')
INSERT customers(customer_id, customer_name) VALUES (3, N'Charlie')
INSERT customers(customer_id, customer_name) VALUES (4, N'Diana')
INSERT customers(customer_id, customer_name) VALUES (5, N'Edward')

INSERT orders(order_id, customer_id, order_date, order_amount) VALUES (1, 1, CAST(N'2023-01-15' AS Date), CAST(250.00 AS Decimal(10, 2)))
INSERT orders(order_id, customer_id, order_date, order_amount) VALUES (2, 1, CAST(N'2023-02-15' AS Date), CAST(350.00 AS Decimal(10, 2)))
INSERT orders(order_id, customer_id, order_date, order_amount) VALUES (3, 2, CAST(N'2023-01-20' AS Date), CAST(1000.00 AS Decimal(10, 2)))
INSERT orders(order_id, customer_id, order_date, order_amount) VALUES (4, 2, CAST(N'2023-02-25' AS Date), CAST(150.00 AS Decimal(10, 2)))
INSERT orders(order_id, customer_id, order_date, order_amount) VALUES (5, 3, CAST(N'2023-03-10' AS Date), CAST(750.00 AS Decimal(10, 2)))
INSERT orders(order_id, customer_id, order_date, order_amount) VALUES (6, 3, CAST(N'2023-03-15' AS Date), CAST(300.00 AS Decimal(10, 2)))
INSERT orders(order_id, customer_id, order_date, order_amount) VALUES (7, 4, CAST(N'2023-04-10' AS Date), CAST(1250.00 AS Decimal(10, 2)))
INSERT orders(order_id, customer_id, order_date, order_amount) VALUES (8, 5, CAST(N'2023-04-15' AS Date), CAST(500.00 AS Decimal(10, 2)))
INSERT orders(order_id, customer_id, order_date, order_amount) VALUES (9, 5, CAST(N'2023-05-01' AS Date), CAST(600.00 AS Decimal(10, 2)))

ALTER TABLE orders WITH CHECK ADD FOREIGN KEY(customer_id)
REFERENCES customers(customer_id)

Stay tuned and also, do not forget you can find other interesting data-related articles on my Medium.

If you like my articles, you can support me here. Thank you!🤗

♦♦

The Mystery Behind the Curtains: How SQL Processes Clauses in Your Queries 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

A successful Manager must excel at Multi-tasking

The Secret to Career Success

I have been in the Tech Industry for over seven years. I have worked both in consulting firms and as an in-house employee. From when I was a junior to when I became a senior, and now as a manager, I have observed the people around me and always believed that “a successful manager must be good at multitasking.”

♦Photo by Robert Bye on UnsplashWhat is Multi-tasking?

When I typed “multi-tasking” into Google search, the AI ​​instantly helped me define it. (Thanks, Gemini.)

♦Definition of “Multiple-Tasking” (by Gemini)

Let me highlight some keywords:

Multitasking is the act of performing 02 or MORE tasks at the SAME time, or rapidly SWITCHING between tasks.

The first promotion from a Junior to a Mid-level engineer, I went from constantly working on my tasks with senior support to doing my tasks while also supporting 1–2 members. It was not so overwhelming. I was able to handle that. Bingo!

The second promotion, when I became a Senior, changed everything dramatically. I was now managing engineers with responsibility, not just completing tasks. I worked long hours (and sometimes unpaid overtime) to ensure everything was completed as perfectly as possible (I’m a bit OCD).

Thanks to hard work, I became a Manager responsible for engineering teams, stakeholders, and business owners. After successfully working long hours and completing everything in one go during my second promotion, I tried to apply the same. Here’s how it went👇.

♦Photo by sarah b on UnsplashA very small percentage of people in the world are good at Multi-tasking.

Even great people don’t choose to multitask.

  1. Bill Gates’ Mastery of ‘Deep Work’ Fueled His Success (Source: www.businessinsider.com/)
  2. Steve Jobs Quote: “Focus comes from saying NO to a thousand things so you don’t go in the wrong direction or do too much.”
  3. Elon Musk created his own “Time Blocking” Method to boost productivity.

You and I are probably not a good fit for “Multiple-tasking” either.

An average of 900 people die every day trying to multitask while driving. Think before you answer a text or change your Spotify music station.

This is the Alternative

What I have learned from a job changes as my mindset changes. Here are my practices for improving productivity and quality:

𝗛𝗮𝗻𝗱𝗹𝗲 𝗠𝗨𝗟𝗧𝗜-𝗧𝗔𝗦𝗞𝗜𝗡𝗚 𝗯𝘆 𝘀𝘂𝗰𝗰𝗲𝗲𝗱𝗶𝗻𝗴 𝗶𝗻 𝗦𝗜𝗡𝗚𝗟𝗘-𝗧𝗔𝗦𝗞𝗜𝗡𝗚 𝗮𝗻𝗱 𝗗𝗘𝗘𝗣-𝗧𝗔𝗦𝗞𝗜𝗡𝗚.

What is Single-tasking?

It’s exactly what it sounds like. Single-tasking is simply the act of focusing on ONE task at a time.

♦Photo by krakenimages on UnsplashWhat is Deep-working?
The term was coined by Cal Newport, a computer science professor at Georgetown University and author of “Deep Work: Rules for Focused Success in a Distracted World.” In his book, Newport defines deep work as a state of distraction-free concentration when your brain works at its maximum potential. — asana.com/resources/what-is-deep-work
How to Practice Single Tasking and Deep Tasking

Let’s set a schedule for each hour of the day and stick to it while avoiding distractions like social media, games, and emails. Put your mind in 100% focus mode.

Something like this, with the main focus on the afternoon.

𝗠𝗼𝗿𝗻𝗶𝗻𝗴:
9:00–9:20: Plan the day
9:20–9:30: Check and prioritize emails
9:30–10:30: Focus on Task A
10:30–11:30: Focus on Task B
11:30–12:00: Check and prioritize emails
12:00–1:00: Lunch break

𝗔𝗳𝘁𝗲𝗿𝗻𝗼𝗼𝗻:
1:00–2:00: Meetings
2:00–2:30: Check and prioritize emails
2:30–3:30: Task C
3:30–4:30: Meetings
4:30–5:00: Check and prioritize emails
5:00–6:00: Task D and wrap up the day

Some tools that support Single-tasking and Deep Work:

  • Pomodoro technique: Work for 25–50 minutes, then take a 5–10 minute break.
  • Focus apps: Block distractions with tools like Forest, Focus@Will, and Freedom.

Many creative ways exist to manage multiple projects in software engineering and other fields.

Got any good tips? Sharing is caring.

💡Data Migration, Analytics, AI & Automation | Sharing the Journey on Medium || Github || Kaggle || Linkedin. 🔔 Follow “Nhi Yen” for future updates!

A successful Manager must excel at Multi-tasking 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

How to Become a Generative AI Engineer in 2025: Your Ultimate Guide

Hey, girl boss! 🖤  If you’re dreaming of building the next ChatGPT, designing AI art like DALL·E, or just owning the tech space…

Continue reading on Code Like A Girl »


Code Like a Girl

3 Interesting Similarities Between Programming and Writing

From code to copy, a few things I found very surprising

Continue reading on Code Like A Girl »


Hoesy, Michalos & Associates

Do You Need a Bankruptcy Lawyer or a Licensed Insolvency Trustee?

For most Canadians struggling with debt, a Licensed Insolvency Trustee (LIT) is the professional you need to help resolve your financial difficulties. LITs are the only professionals legally authorized to administer consumer proposals and bankruptcies in Canada. While bankruptcy lawyers play an important role in specific situations, they cannot file these debt relief solutions on your behalf.

In this article, we explain the key differences between a bankruptcy lawyer and a licensed insolvency trustee and help you understand which professional is right for your situation.

What Does a Licensed Insolvency Trustee Do?

A licensed insolvency trustee (LIT) is federally regulated and provides professional debt help and insolvency services to Canadians dealing with debt problems. LITs are required to be licensed by the Office of the Superintendent of Bankruptcy (OSB). The OSB administers the Bankruptcy and Insolvency Act (BIA) and regulates the insolvency industry in Canada.

A Licensed Insolvency Trustee administers four types of bankruptcy in Canada:

  1. Personal bankruptcy
  2. Consumer proposal
  3. Division 1 proposal
  4. Business bankruptcy

Each of these options provides protection from legal actions taken by their creditors, such as wage garnishments, asset seizures or frozen bank accounts. A bankruptcy process also stops any legal actions that have already started taking place.

As an officer of the court, a licensed insolvency trustee’s main function is to:

  • Ensure bankruptcies and consumer proposals follow legal processes
  • Treat both creditors and debtors fairly
  • Administer bankruptcy estates
  • Investigate claims filed by creditors
  • Realize on assets and distribute funds
  • Act as a consumer proposal administrator in a formal debt proposal

Licensed insolvency trustees are responsible for ensuring that creditors and debtors are treated fairly and that the bankruptcy process follows the rules of bankruptcy law. LITs work for all the stakeholders in a personal bankruptcy or consumer proposal filing, including both creditors and debtors.

If you decide to file bankruptcy or a consumer proposal, your Licensed Insolvency Trustee also provides two financial counselling sessions with a certified credit counsellor to work on budgeting, debt management and credit rebuilding.

When necessary, trustees work closely with bankruptcy lawyers to ensure proper conduct of the bankruptcy process.

What Does a Bankruptcy Lawyer Do?

A bankruptcy lawyer is a legal professional who specializes in insolvency law and helps clients with legal issues arising out of the bankruptcy process. They provide legal advice and represent clients in court proceedings. Unlike a licensed insolvency trustee, a bankruptcy lawyer does not administer debt relief options like a personal bankruptcy or consumer proposal. A bankruptcy lawyer may provide legal interpretation to the trustee, a debtor or a creditor regarding issues in a bankruptcy or proposal.

In rare and complicated personal bankruptcy or consumer proposal filings, a licensed insolvency trustee can consult with a bankruptcy lawyer to represent them at bankruptcy court or to answer legal questions. However, individuals looking for personal debt management advice and solutions will work with licensed insolvency trustees in Canada.

Key Differences Between Trustees and Bankruptcy Lawyers

Understanding the distinctions between these professionals will help you make the right choice for your situation:

  • Legal Authority: Only LITs can file and administer bankruptcies and consumer proposals
  • Primary Focus: LITs focus on debt relief solutions, while lawyers handle legal complications
  • Initial Consultation: LITs offer free consultations, while lawyers typically charge for their time
  • Government Oversight: LITs are federally regulated and must follow strict guidelines
  • Payment Structure: LIT fees are regulated and come from your bankruptcy or proposal payments
When Should I Work With a Licensed Insolvency Trustee?

A licensed insolvency trustee assists in making informed choices about your debt relief options and how to deal with consumer debt such as credit cards, income tax debt, personal loans, unsecured lines of credit, judgment debts from lawsuits, and even some student loans.

A licensed insolvency trustee should be your first point of contact if you:

  • Are struggling to repay your debts
  • Need to explore debt relief options
  • Are facing wage garnishment or other creditor actions
  • Need help creating a plan to resolve your debts

Your LIT will provide a free consultation and debt assessment to discuss your financial situation and review all available debt relief options, including budgeting, credit counselling or a debt management plan, debt consolidation, bankruptcy, and consumer proposals.

When Do I Need a Bankruptcy Lawyer?

While most people won’t need a bankruptcy lawyer, there are times in the bankruptcy process when you may need a lawyer to advocate for you or to help you prepare and file materials for the Court. You may need to engage a bankruptcy lawyer if:

  • A creditor is opposing your bankruptcy discharge
  • You need to revive a failed consumer proposal
  • Your case involves complex legal or corporate issues
  • There are unusual complications with assets or creditors

It’s important to note that being called to attend bankruptcy court does not automatically mean you need a lawyer. Your Licensed Insolvency Trustee can guide you through most court appearances and situations. They have extensive experience with the court process and will advise you if your situation is complex enough to warrant hiring a lawyer for legal representation.

Your Licensed Insolvency Trustee will identify these situations early and advise you if legal representation would be beneficial.

What to Expect When Working With a Licensed Insolvency Trustee

Your journey with an LIT typically includes:

  • A free initial consultation to review your situation
  • A comprehensive review of all debt relief options
  • Support with documentation and filing if you choose bankruptcy or a proposal
  • Two financial counselling sessions focused on budgeting and credit rebuilding
  • Ongoing guidance throughout the process
How Do Licensed Insolvency Trustees Get Paid?

Your initial consultation with a licensed trustee is always free. There are never any upfront fees when you work with an LIT. You only pay when you officially file, and your trustee gets paid out of the proceeds of payments you submit in your bankruptcy or consumer proposal filing.

For example, let’s say you officially decide to file a consumer proposal. You work with your trustee to determine an affordable monthly payment to eliminate all your unsecured debt. Your trustee negotiates with your creditors, and they agree to the monthly payment you have proposed. Your consumer proposal is then deemed accepted. Your trustee’s fees come out of the same monthly consumer proposal payment you make and that’s all you pay. There are no extra costs or set-up fees.

Watch Out for Unlicensed Debt Consultants

While there are many companies claiming to help with debt problems, only licensed insolvency trustees can administer consumer proposals and bankruptcies. Unlicensed debt consultants and credit counsellors cannot help you file these legal debt solutions.

Before working with any debt professional:

  • Ask for their credentials
  • Verify their licensed status
  • Ensure all payments are made directly to the licensed insolvency trustee
  • Don’t make payments until your proposal is officially filed

Remember, while filing bankruptcy may feel like your only option, it’s important to explore all available debt relief solutions. A Licensed Insolvency Trustee can help you understand if bankruptcy in Canada is truly your best path forward or if other options might better suit your needs.

If you’re struggling with debt, contact a licensed insolvency trustee today for a free consultation to discuss all your repayment options. At Hoyes, Michalos & Associates, we’re here to help you find the right solution for your specific situation and guide you toward a debt-free future.

Book a FREE consultation

The post Do You Need a Bankruptcy Lawyer or a Licensed Insolvency Trustee? appeared first on Hoyes, Michalos & Associates Inc..


James Davis Nicoll

Most Definitely Evil / Dragonfired (Dark Profit, volume 3) By J. Zachary Pike

2023’s Dragonfired is the third installment in J. Zachary Pike’s Dark Profit secondary-universe fantasy series.

Good has triumphed over evil and the universally acclaimed hero Johan is king! His beloved Marja is queen! All shall celebrate! The humans and other Lightling races because they’re on board with Johan’s glorious plans (or at least the version Johan is sharing). The gnolls, trolls, and other Darkling races pretend to celebrate because the price of open dissent is death.


Carrie Snyder: Obscure Canlit Mama

Day 5 prompt for a creative pause

Day 5 Prompt

Draw while listening to whale song — eyes open or closed. Free-write for 5 mins.

Note: Listen to Humpback whale song by scrolling down this wikipedia link. Materials: black pen, crayons, water colours. Music: whale song. I wrote about what it feels like when someone doesn’t have time for my whimsy and playfulness, and I see myself through their eyes. I understand their impatience, even their disgust at my time-wasting; and yet, the delight of doing projects (like this one — of my own invention, for no super-obvious practical reason) carries me along. I notice when what I’m doing isn’t landing. And I’m patient. Most of the things that matter to me take time to unfold. Lots of time. It takes time to go deep. But like the whale, I need to surface too, and breathe in the world.

xo, Carrie


KWLUG

KWLUG - Local DNS, Cool Tools

Monday, Jan 6 2025, 07:00pm

Location: Hybrid: BBB and LIB 329 at Dana Porter Library

Thomas Busch will show us how to set up a local DNS server. He writes: 

Learn how to build and manage a reliable local DNS infrastructure using synchronized AdGuard Home instances. This session will cover practical deployment methods, configuration examples, and best practices for maintaining a private, secure DNS environment.

A number of KWLUG members will show off some cool tools:

  • Jeff Smith will demonstrate mkvmerge and mkvextract . 
  • Shravan Dwarka will demonstrate some bash scripting.
  • Tim Laurence will demonstrate nmap. 
  • Andrew Cant will demonstrate using Lua in Neovim. 

 


The Backing Bookworm

The Business Trip


This book started off strong. I loved the tension and the mystery and how the author successfully incorporated so many POVs that tell the story of two women and how their lives become entangled when they meet on a flight.
The promising premise had me glued to the pages for the first half of the book. There were great twists, solid tension and a character readers will love to hate - even if he is a caricature of a bad guy. But after the midway point, a lot of page time is spent repeating conversations the reader has already read and at this point, the story requires the reader to suspend disbelief far outside my comfort zone. A few scenes progress into the realm of ridiculous - with some actions being physically impossible (ie. suitcase) and these scenes left me irritated. 
The final 'reveal' was even more far-fetched, cementing my not so positive feelings for this book that started off so strongly. 
Disclaimer: My sincere thanks to St Martin's Press for the advanced digital copy of this book which was given in exchange for my honest review.

My Rating: 2.5 starsAuthor: Jessie GarciaGenre: SuspenseType and Source: ebook from publisher via NetGalleyPublisher: St Martin's PressFirst Published: January 14, 2025Read: Nov 24 to 28, 2024

Book Description from GoodReads: The Business Trip is the gripping, page-turning debut from author Jessie Garcia.
Stephanie and Jasmine have nothing and everything in common. The two women don’t know each other but are on the same plane. Stephanie is on a business trip and Jasmine is fleeing an abusive relationship. After a few days, they text their friends the same exact messages about the same man—the messages becoming stranger and more erratic.

And then the two women vanish. The texts go silent, the red flags go up, and the panic sets in. When Stephanie and Jasmine are each declared missing and in danger, it begs the Who is Trent McCarthy? What did he do to these women— or what did they do to him?

Twist upon twist, layer upon layer, where nothing is as it seems, The Business Trip takes you on a descent into the depths of a mastermind manipulator. But who is playing who?

Code Like a Girl

AWS Babelfish: Now, Bilingual Aurora Is A Duolingo Star

♦AWS choosing their next service name

I was once preparing for my AWS solution architect exam when I came across a question about converting from an MS MYSQL database to PostgreSQL. I examined the multiple-choice questions and started rolling out some answers because—of course—I didn’t know the answer by heart—who does?

However, the first option I started discarding started with a feature called “Babelfish for Aurora PostgreSQL.” I didn’t even flinch because there is no way there is any actual service or feature whatsoever that could possibly be called “BABELFISH.”

This is when I learned—the hard way—that AWS “ is not your regular cloud provider; it’s a cool one” and that Babelfish is the right answer.

Curiosity got the best of me.

It turns out that “babelfish” is a magical creature referenced in Hitchhiker’s Guide to the Galaxy; placing it in someone’s ear enables them to instantly understand any spoken language.

How is that relevant to AWS by any means?

Babelfish for Aurora PostgreSQL acts as a “translator,” allowing PostgreSQL to understand and process queries written for Microsoft SQL Server (T-SQL) without requiring the application to be rewritten.

For dummies like me, it’s like Aurora is keeping a streak on Duolingo. It's such a relief because imagine you having to migrate your app with the minimum code change.

So, why should you care?

A service comes in place when there’s a problem to solve, so what kind of problem can “babelfish” fix?

There is an undeniably large number of database users written using MS SQL in the market; those databases speak—well,SQL.

Since we are migrating this and that, Amazon Aurora PostgreSQL is a good candidate, as it’s faster and cheaper, and the project manager said so.

Now that your app doesn’t “speak” PostgreSQL, you must rewrite the code, resign, or use Babelfish, Google's translator for databases.

♦Photo from the AWS documentation page, I guess we all know that.

Google Translator—I mean Babelfish—makes awkward conversations seamless. It allows Aurora PostgreSQL to “understand” T-SQL, the language of SQL Server. This means your app can keep speaking SQL Server’s language while the database listens, interprets, and responds in a way that works perfectly with PostgreSQL.

This way, you reduce the risk of code refactoring and downtime during the migration, and who doesn’t love a little less effort?

It’s not only a good Google Translator replica for databases; it also has some other cool features like Stored procedures, Data types, and Functions—whatever that means.

So, my honest review will be:
  • 10/10 for the service
  • 1/10 for that sense of humor- with all due respect..

AWS Babelfish: Now, Bilingual Aurora Is A Duolingo Star was originally published in Code Like A Girl on Medium, where people are continuing the conversation by highlighting and responding to this story.


Children and Youth Planning Table of Waterloo Region

Celebrating National Child Day in Ottawa

Celebrating National Child Day in Ottawa: A Journey of Advocacy and Inspiration

Here’s what happens when two introverts (Joana Lincho, Youth Engagement in Systems Lead, and Margie McLean, Coaching and Sustainability Lead) get invited to go to Ottawa to represent the Children and Youth Planning Table on National Child Day: 

 

On November 20, we had the privilege of traveling to Ottawa to mark National Child Day and honor the adoption of the Convention on the Rights of the Child (CRC) by the United Nations in 1989. This landmark agreement—joined by Canada in 1991—represents a commitment to ensure all children are treated with dignity and respect and have the opportunity to reach their full potential.  Our trip started early in the morning on November 19, with a scenic train ride that set the stage for an incredible day of advocacy, connection, and reflection.

 

A Morning at the Senate Breakfast

On November 20, we attended the Senate Breakfast at the Senate building in Ottawa, hosted by Senators Moodie, Audette, Burey, Francis, Greenwood, Martin, and Pate in partnership with UNICEF Canada and Campaign 2000. This gathering brought together young advocates from across Canada to reinforce their commitment to creating a brighter future for all children. The breakfast served as a space to discuss the importance of child rights and amplify youth voices in shaping policies that impact their lives. Emceed by Shennel Simpson, a youth advocate from UNICEF, we had the opportunity to connect with people from across Canada to share about the work of the Children and Youth Planning Table.

 

UNICEF Canada’s Youth Advocacy Summit

Later that day, we joined UNICEF Canada’s Youth Advocacy Summit, held in partnership with several organizations, including BGC Canada, Equitas, Jack.org, and more. The event featured a panel discussion that was live streamed across the country and included youth advocates sharing their ideas and recommendations on critical issues like education, healthcare, mental health, and racism.  Moderated by Rosemary Barton, CBC’s Chief Political Correspondent, with contributions from Bob Rae, Canada’s Ambassador to the United Nations, the voices of youth were front and centre.

 

A highlight of the event was the launch of the 2024 Reimagine Playbook, which examines how major trends—like climate change, technological disruptions, and demographic shifts—impact the futures of children and youth.

 

After the panel discussion we participated in a roundtable session, where we provided feedback on a thought-provoking question: “If climate change was solved, how would mental health improve for children and youth?” The insights shared underscored the profound connection between a healthier planet and the mental well-being of future generations.

 

A Call to Action

 

We also met with Ottawa City Councillor Stephanie Plante, who we were told was unofficially known as the “children’s councillor.” Her commitment to applying a youth lens to her decision-making was both inspiring and refreshing. Our conversation energized us and left us wondering: How can we highlight people like Councillor Plante who are doing their work in this way, and how might local government officials in our community bring this perspective to the forefront of their work?

 

This journey was more than just a celebration; it was a call to action. It reinforced the importance of listening to youth voices and championing their ideas for a better future. It made us grateful to be part of the Children and Youth Planning Table, a community collaborative focused on bringing young people, organizations, and decision makers together to take actions that prioritize the well-being of all children and youth in Waterloo Region.

 

Other fun facts: We also snuck in a visit to Parliament Hill, had Beaver Tails at ByWard Market and Margie got stuck in an elevator.  You can see some of those highlights on the CYPT Instagram.

The post Celebrating National Child Day in Ottawa appeared first on Children and Youth Planning Table.


Greater Kitchener Waterloo Chamber of Comerce

2024 Waterloo Region Record: Reader’s Choice Winners

On behalf of the Greater KW Chamber of Commerce, we want to congratulate all our Members who were recognized as winners of the 2024 Waterloo Region Record: Reader’s Choice Awards.

Congratulations to…

AUTOMOTIVE CATEGORY Auto Collision & Repair
  • Diamond: Heffner Lexus Toyota
Auto Detailing
  • Diamond: Heffner Lexus Toyota
Auto GLASS REPAIR
  • Diamond: Heffner Lexus Toyota
AUTO PARTS & ACCESSORIES
  • Diamond: Heffner Lexus Toyota
AUTO RUSTPROOFING
  • Diamond: Heffner Lexus Toyota
Auto SERVICE CENTRE
  • Diamond: Heffner Lexus Toyota
CAR WASH
  • Diamond: Valet Car Wash
DOMESTIC CAR DEALERSHIP
  • Diamond: Forbes Motors Inc.
IMPORTED CAR DEALERSHIP
  • Diamond: Heffner Lexus Toyota
NEW CAR DEALERSHIP
  • Diamond: Heffner Lexus Toyota
OIL/LUBE CHANGE
  • Diamond: Heffner Lexus Toyota
TIRE SALES/SERVICE
  • Diamond: Heffner Lexus Toyota
TRANSMISSION SERVICE & REPAIR
  • Diamond: Heffner Lexus Toyota
used car dealership
  • Diamond: Heffner Lexus Toyota
LUXURY CAR DEALERSHIP
  • Diamond: Heffner Lexus Toyota
BRAKE SERVICE & REPAIR
  • Diamond: Heffner Lexus Toyota

 

ENTERTAINMENT CATEGORY ART GALLERY
  • Diamond: Canadian Clay & Glass Gallery
CONCERT VENUE
  • Diamond: Centre In The Square
GOLF COURSE
  • Diamond: Rockway Golf Course
  • Diamond: Whistle Bear Golf Club
LIVE ENTERTAINMENT FACILITY
  • Diamond: Centre In The Square
LIVE THEATRE
  • Diamond: Drayton Entertainment
LOCAL TOURIST ATTRACTION
  • Diamond: St. Jacobs Farmers’ Market & Flea Market
LOCAL WATERPARK
  • Diamond: Bingemans, FunworX, Big Splash
MOVIE THEATRE
  • Diamond: Princess Cinemas
MUSEUM
  • Diamond: THEMUSEUM
RECREATION FACILITY
  • Diamond: TRAPPED Waterloo

 

FOOD / DRINK / GROCERY FARM MARKET
  • Diamond: St. Jacobs Farmers’ Market & Flea Market
FISH & SEAFOOD STORE
  • Diamond: Caudle’s Catch Seafood
GROCERY PICK-UP AND DELIVERY
  • Diamond: Community Support Connections

 

HEALTH / WELLNESS / FITNESS / BEAUTY REFLEXOLOGY
  • Diamond: Anita’s Skin Care Spa
EQUESTRIAN / RIDING LESSONS
  • Diamond: Pride Stables

 

HOME / HOME IMPROVEMENT BUILDING MATERIAL SUPPLIES
  • Diamond: Elmira Door & Trim Ltd.
FLOORING – HARDWOOD / LAMINATE
  • Diamond: Brodrecht’s Flooring Canada
FLOORING – TILE
  • Diamond: Brodrecht’s Flooring Canada
GARAGE DOOR PRODUCTS / SERVICE
  • Diamond: Waterloo Garage Doors Inc.
HARDWARE STORE
  • Diamond: Swanson’s Home Hardware Building Centre
INSULTATION SERVICES
  • Diamond: Reitzel Insulation
INTERIOR DESIGN
  • Diamond: Pioneer Craftsmen Ltd.
LAWNCARE SERVICE
  • Diamond: Community Support Connections
PAINT & WALLPAPER STORE
  • Diamond: Heer’s Paint & Décor
RUBBISH REMOVAL
  • Diamond: Golden Disposal Waste & Recycling Services
TREE SERVICE
  • Diamond: Pinnacle Tree & Shrub Care
WINDOWS & DOORS
  • Diamond: Elmira Door & Trim Ltd.
WATER TREATMENT
  • Diamond: Cross Heating & Air Conditioning Ltd.
LUMBER
  • Diamond: Swanson’s Home Hardware Building Centre
AWNINGS
  • Diamond: MacDonald Awning & Shade Products

 

PEOPLE / PROFESSIONALS EMPLOYMENT LAWYER
  • Diamond: Justin Heimpel (SorbaraLaw)
ESTHETICIAN / MAKE-UP
  • Diamond: Anita Krawiec (Anita’s Skin Care Spa)
FAMILY LAW LAWYER
  • Diamond: Emily Metcalfe (Giffen LLP)
FUNERAL DIRECTOR
  • Diamond: Henry Walser (Henry Walser Funeral Home)
GRAPHIC / WEB DESIGNER
  • Diamond: Craig Herner (Ultimate Vision Web & IT Solutions)
MEDICAL AESTHETICIAN
  • Diamond: Anita Krawiec (Anita’s Skin Care Spa)
OPTOMETRIST
  • Diamond: Dr. Manvit K Singh (Pierce Family Vision)
REAL ESTATE AGENT
  • Diamond: Mike Bolger (Chestnut Park Realty)

 

PROFESSIONAL SERVICES ACCOUNTING
  • Diamond: Graham Mathew Chartered Professional Accountants
BANK / TRUST COMPANY
  • Diamond: TD Canada Trust
BEREAVEMENT COUNSELLING
  • Diamond: Hospice Waterloo Region
BOOKKEEPING SERVICES
  • Diamond: Balanced Books and Taxes
CLEANING SERVICES
  • Diamond: Community Support Connections
COMPUTER SERVICE / REPAIR
  • Diamond: Ultimate Vision Web & IT Solutions
CONFERENCE CENTRE
  • Diamond: Bingemans, Funworx, BigSplash
CREDIT UNION
  • Diamond: Kindred Credit Union
DRY CLEANING SERVICES
  • Diamond: Newtex Cleaners
FINANCIAL PLANNING SERVICES
  • Diamond: IG Wealth Management | Shari Foster
FUNERAL HOME / SERVICES
  • Diamond: Henry Walser Funeral Home
HOTEL / MOTEL
  • Diamond: Delta Waterloo
INCOME TAX PREPARATION
  • Diamond: Graham Mathew Chartered Professional Accountants
INVESTMENT COMPANY
  • Diamond: IG Wealth Management | Shari Foster
LEGAL SERVICES
  • Diamond: SorbaraLaw
LENDING SERVICES
  • Diamond: Dominion Lending Centres Leslie Morris
MOBILE COMMUNICATIONS
  • Diamond: Rogers
MORTGAGE COMPANY / SERVICES
  • Diamond: Dominion Lending Centres Leslie Morris
MOVING COMPANY / SERVICES
  • Diamond: AMJ Campbell
NEW BUSINESS
  • Diamond: Ink Den
PERSONAL INJURY LAW SERVICES
  • Diamond: SorbaraLaw
PRINT / IMAGING SERVICES
  • Diamond: Civilian Screen Printing
PRIVATE SCHOOL
  • Diamond: Scholars’ Hall Inc.
PUBLIC RELATIONS
  • Diamond: Durrell Communications
REAL ESTATE LAW FIRM
  • Diamond: SorbaraLaw
RETIREMENT / ADULT LIFESTYLE COMMUNITY
  • Diamond: The Westhill
SENIOR SERVICES
  • Diamond: Community Support Connections
SENIOR TOURS
  • Diamond: Great Canadian Holidays & Coaches
SKATING CLUB / LESSONS
  • Diamond: KW Skating Club
WATER DELIVERY / SUPPLY
  • Diamond: Savarin Springs
WEB SERVICES / DESIGN
  • Diamond: Ultimate Vision Web & IT Solutions
WEDDING FACILITY / VENUE
  • Diamond: Cambridge Mill
WEDDING PLANNING
  • Diamond: Little Mushroom Catering
MAID / CLEANING SERVICE
  • Diamond: Community Support Connections
HOSPITAL
  • Diamond: Grand River Hospital
NON-PROFIT / FOUNDATIONS
  • Diamond: Community Support Connections
DISTRIBUTION SERVICES
  • Diamond: Knapp Fasteners

 

RESTAURANTS ATMOSPHERE
  • Diamond: The Bauer Kitchen
HOT DOG
  • Diamond: Costco | Waterloo
ICE CREAM / FROZEN YOGURT
  • Diamond: Four All Ice Cream
OUTDOOR PATIO
  • Diamond: Solé Restaurant and Wine Bar
RESTAURANT WITH A VIEW
  • Diamond: Cambridge Mill
SEAFOOD
  • Diamond: Solé Restaurant and Wine Bar
SPORTS BAR
  • Diamond: Moose Winooski’s
WINE LIST
  • Diamond: Little Mushroom Dining Lounge
WINGS
  • Diamond: Morty’s Pub
GERMAN
  • Diamond: Concordia Club

 

SHOPPING FLORIST
  • Diamond: Cameron’s Flower Shop
FORMAL WEAR / RENTAL
  • Diamond: Paul Puncher Men’s Clothier
CHILDREN’S FURNITURE
  • Diamond: Tepperman’s
HOME DÉCOR / ACCESSORIES
  • Diamond: Waterloo Garage Doors Inc.
MEN’S FASHIONS
  • Diamond: Channer’s Men’s Apparel
SHOPPING MALL / CENTRE
  • Diamond: Conestoga Mall
FLEA MARKET
  • Diamond: St. Jacobs Farmers’ Market & Flea Market

 

For a full list of winners, click here. 

The post 2024 Waterloo Region Record: Reader’s Choice Winners appeared first on Chamber of Commerce KW.


Github: Brent Litner

brentlintner starred pydantic/pydantic-ai

♦ brentlintner starred pydantic/pydantic-ai · December 4, 2024 16:48 pydantic/pydantic-ai

Agent Framework / shim to use Pydantic with LLMs

Python 2.5k Updated Dec 5


Github: Brent Litner

brentlintner pushed to master in brentlintner/vim-settings

♦ brentlintner pushed to master in brentlintner/vim-settings · December 4, 2024 16:24 1 commit to master
  • d879c24
    Change vertsplit to be hidden

Angstronm Engeineering

Our partners at WSU have opened the door to better batteries

 Modelling the organization of human cells, researchers from LBNL and Washington State University have made a breakthrough in battery technology.

By configuring the gel-like electronics in a way similar to how cells let water in and out, they created an ion superhighway that conducts electricity far better than existing technology.

Learn More here.

 

The post Our partners at WSU have opened the door to better batteries appeared first on Angstrom Engineering.


Code Like a Girl

Manny Vs. Auto: The Ultimate QA Battle You Need To See

Manny Vs. Auto: The Ultimate QA Battle You Need To See.Unlock Better QA: The Heart of Manual vs Automated Testing♦Created by the author

The stage is set in a lively QA meeting room.

Two sides face off:

  • On the left, we have Manny, the Manual Tester, with a steaming cup of coffee in hand ☕️, ready to defend the artistry of manual testing.
  • On the right sits Auto, the Automated Tester, holding a laptop with scripts running furiously 💻, exuding confidence.

The moderator, an overworked project manager, looks on nervously, hoping for peace.

The Debate Begins.

The Setup

☕️Manny:
Look, I’m hands-on. I dive into your app with nothing but intuition, curiosity, and a strong desire to break things. I’m the one who clicks every button, types every crazy input, and finds bugs that no machine could predict.

💻Auto:
And I’m the future. I create scripts to do in minutes, which takes you hours. Repetition doesn’t scare me — it powers me. Why waste time when I can work around the clock without needing a coffee refill?

Speed and Drama

☕️Manny:
Speed isn’t everything, my dear robot. Sure, I’m slower, but I’m thorough. And let’s not forget the drama when I gasp after finding a critical bug. You can’t beat my flair for theatrics!

💻Auto:
Drama? How quaint. I deal in efficiency. I can test 300 scenarios in the time it takes you to finish one. But you’re right — there’s drama when my scripts fail because someone forgot to update me for a UI change. Oops.

Error Messages

☕️Manny:
My error messages are a work of art: screenshots, step-by-step instructions, and even a helpful doodle if needed. Developers love me for my detailed reports.

💻Auto:
That’s adorable. I prefer precision: one cryptic log file, no fuss. Sure, it might read like an ancient riddle, but isn’t QA all about problem-solving?

Creativity vs. Consistency

☕️Manny:
Can your scripts test what happens if someone pastes an entire Shakespeare play into a text field? Or uploads 3GB of cat memes? No? Didn’t think so. That’s where creativity comes in, and that’s my domain.

💻Auto:
I’m not here to be quirky. I deliver consistency. If something works today, tomorrow, and next month, I made sure of it. Let me handle the boring stuff — you can keep your cat memes.

Maintenance Madness

☕️Manny:
Maintenance? Never heard of it. I keep testing the new builds like it’s day one. Fresh eyes every time.

💻Auto:
Right, because I’m the one who breaks when the UI changes. Maintaining me may take time, but I run faster than you ever could once I'm updated.

Bug Reporting Styles

☕️Manny:
My bug reports are a masterpiece. Detailed, clear, and sometimes even poetic. Developers respect my effort.

💻Auto:
Poetry is nice, but I’m concise. Null pointer exception? Figure it out, genius.

Team Dynamics

☕️Manny:
Developers constantly ask me, ‘How did you find that?’ My answer? Clicking stuff and thinking like a user. You can’t script intuition.

💻Auto:
Developers love me because I help them catch regressions before they go live. Sure, I fail sometimes, but when I pass, it’s beautiful.

The Victory Dance

Manny (☕️):
Nothing beats the satisfaction of manually finding a bug that brings down the app. It’s QA gold!

💻Auto:
And nothing beats the thrill of all my tests passing flawlessly. Okay, it’s rare, but when it happens—Chef’s kiss.

Moderator:
In this debate, there’s no single winner. Manual testing and automated testing aren’t rivals — they’re allies. Manny, you bring creativity, intuition, and the ability to think like a real user. Auto, you bring speed, precision, and consistency that scales. Together, you’re a dream team, ensuring the app is functional and delightful to use.

So, Who Wins?

Here’s the twist: nobody. Manual testing and automated testing aren’t enemies — they’re teammates. Manual testing brings creativity and human intuition, while automated testing brings speed and precision. They’re like peanut butter and jelly, Batman and Robin, or QA and “It works on my machine.”

The real winners? The users who get an app that (mostly) works.

In the epic showdown between Manual Testing and Automated Testing, the real winners are the users and the QA teams.

Manual testing adds a human touch, finding the weird, quirky bugs that only a creative mind can imagine.

Automated testing provides the power of repetition and speed, ensuring that every nook and cranny is covered consistently. Together, they form the backbone of a solid QA strategy, proving that teamwork truly makes the dream work.

If you found this article interesting and informative, show your appreciation by tapping the 👏 icon. Your feedback helps me understand what content resonates with you the most.
Thank you for reading!

Manny Vs. Auto: The Ultimate QA Battle You Need To See 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 “Cursed Thing” Called Ownership in Rust!

A Beginner’s Journey to Mastering Ownership, Stack vs Heap, and Memory Safety in Rust Programming

Continue reading on Code Like A Girl »


Code Like a Girl

AI for Everyone: 4 Free Tools to Build Machine Learning Models

Turn your ideas into AI models — no coding required, AI handles the rest!

Continue reading on Code Like A Girl »


Code Like a Girl

How I Screwed Up the Most Important Feature of the Team

And the Lessons I Learned.

Continue reading on Code Like A Girl »


James Davis Nicoll

Big Bad World / Mästerdetektiven Blomkvist lever farligt (Kalle Blomkvist, volume 2) By Astrid Lindgren (Translated by Susan Beard)

1951’s Mästerdetektiven Blomkvist lever farligt is the second volume in Astrid Lindgren’s Kalle Blomkvist series. Originally translated into English as Bill Bergson Lives Dangerously1—the current English translation is titled Living Dangerously and was translated by Susan Beard.

As established in the previous volume, thirteen-year-old self-proclaimed master detective Kalle Blomkvist and his chums Eva-Lotta and Anders reside in Lillköping, a town so small it has but two proper streets. How on Earth can living there be in any way dangerous?


Carrie Snyder: Obscure Canlit Mama

Day 4 prompt for a creative pause

Day 4 Prompt

Draw & write. Something you asked for and did not receive. (Do you still want it?)

Notes: pen & watercolour; songs: “Basement Apartment” by Sarah Harmer and “Atlantic,” by The Weather Station. The text reads a bit like a series of grievances, which was not where I’d originally imagined this going. But I got somewhere interesting. The final scrawl on the page reads: I asked to not have to ask — and that did not happen.

xo, Carrie

Grand River Rocks Climbing Gym

Bouldering 101 – Kitchener

The post Bouldering 101 – Kitchener appeared first on Grand River Rocks Climbing Gym.


Grand River Rocks Climbing Gym

Bouldering 101 – Waterloo

The post Bouldering 101 – Waterloo appeared first on Grand River Rocks Climbing Gym.


Code Like a Girl

How I built a payment system with Stripe in 1 week to power my app: Part 1

Want to build a better payment system? Here’s how I did it in 7 days♦Image by Nathana Rebouças from Unsplash

Building a payment system can feel intimidating. Cards, webhooks, retries, security — the list goes on. But with the right tools and approach, you can move fast and have lots of fun!

In this article, I’ll take you behind the scenes of how I built a fully functional payment system in just one week using Stripe to onboard users to my app. Whether you’re working on a small project or scaling to thousands of users, there’s far more happening under the hood than simply calling a few Stripe APIs.

Let’s dive in.

Contents
  1. Requirements
  2. Payment intents and idempotency keys
  3. High level design of my app
  4. Edge cases
Requirements1. Strong consistency

Transactions must be accurately reflected in the database, and the user should see them reflected accurately. This might mean sacrificing some latency.

2. Idempotent operations:

Idempotency ensures that repeating the same operation produces the same result. For example, if a user clicks “Pay” twice because of a slow page load, they won’t be charged twice. Stripe uses an idempotency key to make this happen (more on that later).

3. High reliability

Network issues happen. Payment systems must handle retries gracefully without losing track of what’s already processed.

4. Security

Unless you’re PCI DSS compliant, never store raw credit card details in your database.

The Payment Card Industry Data Security Standard (PCI DSS) is a set of requirements designed to ensure that all companies that accept, process, store, or transmit credit card information maintain a secure environment.

5. Reconciliation

This ensures that the financial records in your database match those of the payment processor (e.g., Stripe). Regular reconciliation improves accuracy and accountability.

Stripe provides a balance transaction API, which allows you to programmatically retrieve detailed information about your transactions and reconcile them with your database.

Payment Intents and Idempotency KeysWhat are they?

A payment intent initiates the lifecycle of a single payment. It allows you to do things like reserve funds and resume the payment process if it’s interrupted. Each payment intent has a unique ID that can be retrieved later.

An idempotency key is a unique key generated for each API request to ensure that the same operation isn’t processed twice, even if the request is retried due to network issues.

Why do I need both?

Imagine you’re at a restaurant. You start with an order of 5 dishes. Later, you add more items, and finally, dessert.

A single payment intent tracks the entire meal, keeping everything tied to one bill and ensuring all incremental orders are consolidated.

Every time someone at the table checks out, a new API call with a unique idempotency key is made. This key helps Stripe differentiate between separate checkout sessions while also preventing duplicate charges if one session is retried.

This setup allows flexibility for incremental orders, while the payment intent keeps a consistent record of the total order. Without it, you’d end up with separate bills for every addition, which complicates tracking and reconciliation.

In short, a payment intent tracks the overall transaction and is managed by Stripe, while idempotency keys are short-lived and tied to individual API calls. Idempotency keys are generated and managed by you.
Payment flow

Timing is everything in payment processing. Creating keys at the wrong time can lead to inconsistencies, duplicate payments, or failed operations. Here’s the right flow:

a) User adds item to cart.

  • Do nothing. The user hasn’t committed to making a payment.

b) User proceeds to checkout.

  • Generate an idempotency key.
  • Create a payment intent via Stripe’s API using this idempotency key.
  • Save the payment intent ID in your database, associated with the user or cart.

c) User submits payment

  • Payments can take some time (seconds to hours) to process. Set up a webhook to listen for updates from Stripe. Stripe will include the payment intent Id in the webhook payload to help you identify the transaction.
  • Webhooks are tied to the payment intent, not the idempotency key. If the user makes multiple incremental orders, you’ll receive separate webhook events, all tied to the same payment intent Id.
Best practices
  1. If the checkout process is interrupted and resumed, use the same payment intent. This ensures failed payment attempts are tracked and avoids creating unnecessary payment intents.
  2. Each payment intent includes a temporary client secret that the client uses to securely complete the payment.

Definitely read the Stripe API docs

High Level Design of My App

Putting all the various components together, here you have it.

♦High level design (drawn by me)Edge Cases — Some Common Scenarios
  1. User leaves or refreshes during checkout
    Retrieve the existing payment intent ID from the database and resume the process to avoid duplicates and maintain a seamless experience.
  2. Failed payment (eg. declined card)
    Stripe sends a webhook with a failed status. Allow the user to retry the same payment intent. You can update the intent with new payment details. Do provide users with clear, actionable error messages.
  3. Webhook failures
    Stripe retries webhooks if your server doesn’t respond with a 2xx status. Ensure idempotent processing by storing and checking Stripe’s event.id to avoid duplicate handling.
Wrapping Up

That’s all for part 1!

In Part 2, we’ll dive into scaling this system, tackling topics like managing payment processing delays, improving reliability for failed payments, and building for high-traffic scenarios.

Even if you’re not building a payment system yourself, understanding how they work is an excellent case study for system design interviews.

Have specific topics you’d like me to cover in the next part? Let me know in the comments — I’d love to hear your thoughts!

Thanks for reading, and see you in the next one :)

How I built a payment system with Stripe in 1 week to power my app: Part 1 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

Redis and Me: A Love Story Of Speed And Simplicity

How Redis Transformed My Development of Fast and Scalable Applications♦Image generared using ChatGPT

Redis is more than just an in-memory data store; it’s a tool that has transformed how I think about caching, data management, and real-time application development.

My journey with Redis has been one of discovery, optimization, and learning how to leverage its powerful features to build faster, more scalable applications.

Here is my experience with Redis, including the challenges I faced, the solutions I discovered, and why Redis has become one of my go-to tools as a developer.

Getting Started with Redis

Like many developers, I was first introduced to Redis as a caching layer for an application that needed to handle heavy read operations. I was working on an e-commerce platform at the time, and frequent database queries for product information were causing significant performance bottlenecks.

Caching frequently accessed data in memory seemed like an obvious solution, and Redis came highly recommended. Setting up Redis was surprisingly straightforward. Within a few hours, I had a functional cache that drastically reduced query times and significantly improved user experience.

What struck me immediately was how intuitive Redis was to use. Its simple commands and key-value storage model made it easy to grasp, even for someone new to in-memory databases.

Redis in Action: Use Cases I’ve Explored

Over time, I began exploring Redis beyond just caching, using it to solve a variety of challenges in application development. Here are some of the key use cases I’ve worked on:

Session Management

One of my early Redis projects involved managing user sessions in a web application. Storing sessions in Redis provided both speed and scalability. Since Redis operates in memory, it allowed for lightning-fast access to session data, which was crucial for maintaining a seamless user experience.

The built-in TTL (Time-To-Live) feature was a game-changer. By setting an expiration time on session keys, I could automatically remove stale sessions, reducing memory usage without any manual intervention.

Real-Time Applications

Redis excels in real-time scenarios, and I got to experience this firsthand while building a chat application. Using Redis’ Pub/Sub mechanism, I was able to create a real-time messaging system where users could send and receive messages instantly.

The Pub/Sub model was simple yet effective. Redis acted as a message broker, ensuring that all connected clients received updates in real time. This project helped me appreciate the versatility of Redis and its ability to handle event-driven architectures seamlessly.

Rate Limiting

Another interesting use case was implementing rate limiting for an API. With Redis, I was able to track the number of requests from each user and block excessive traffic to prevent abuse. By using the INCR command and setting expiration times on keys, I created an efficient and lightweight solution without adding significant overhead to the system.

Leaderboards and Ranking Systems

Redis’ sorted sets turned out to be perfect for building leaderboards in a gaming application I worked on. Using commands like ZADD, ZRANGE, and ZRANK, I could easily maintain a dynamic leaderboard that updated in real time as players scored points. The performance of Redis in this context was outstanding, even with a large number of users.

Challenges and Lessons Learned

No journey is without its challenges, and my experience with Redis has been no exception. Here are a few hurdles I encountered and the lessons I took away:

Memory Management

Redis stores data in memory, which means it’s incredibly fast but also limited by the available RAM. Early on, I ran into issues where the server would run out of memory due to unbounded key growth. The solution was to implement proper eviction policies using Redis’ built-in options like LRU (Least Recently Used) and LFU (Least Frequently Used).

Persistence Trade-Offs

While Redis is primarily an in-memory store, it does offer persistence options like RDB snapshots and AOF (Append-Only File) logs. Initially, I didn’t fully understand the implications of these modes. For instance, the RDB snapshots provided periodic backups but risked data loss between intervals, while AOF ensured durability at the cost of slower write performance. Choosing the right persistence strategy required a deeper understanding of my application’s requirements.

Cluster Management

As applications scale, a single Redis instance might not suffice. Setting up Redis clusters to distribute data across multiple nodes introduced challenges like managing shard keys and ensuring high availability. However, overcoming these challenges taught me a lot about distributed systems and the importance of planning for scalability from the start.

Why Redis Stands Out

Redis has a lot of competitors in the caching and data storage space, but several features make it stand out for me:

  • Speed: Operating entirely in memory gives Redis unparalleled performance.
  • Rich Data Structures: From strings and lists to hashes, sets, and sorted sets, Redis supports a variety of data types, making it versatile.
  • Extensibility: Features like Lua scripting, Pub/Sub, and modules like RedisJSON and RedisGraph add significant capabilities.
  • Simplicity: The command-line interface (CLI) and straightforward commands make Redis approachable for developers at any level.
Redis and the Future of Development

Redis continues to evolve, with features like Redis Streams for real-time data processing and RedisGears for serverless scripting. Looking ahead, I see Redis becoming even more integral to modern application architectures, particularly as demand grows for real-time analytics, event-driven systems, and AI-driven applications.

For me, Redis is more than just a tool — it’s a constant reminder of how simplicity and performance can coexist. It has shaped the way I approach application design, encouraging me to think beyond traditional databases and embrace solutions that prioritize speed and scalability.

Final Thoughts

Working with Redis has been a rewarding experience, filled with both challenges and triumphs. It’s a tool that has consistently delivered value in every project I’ve used it for. Whether it’s caching, real-time messaging, or building complex data systems, Redis has proven to be a reliable ally in my development journey.

If you’re a developer considering Redis, I can confidently say it’s worth diving into. It’s not just a database; it’s a toolbox full of possibilities. And for those who have already worked with Redis, I’d love to hear about your experiences — let’s exchange ideas and grow together as part of the Redis community.

Happy Coding!

Redis and Me: A Love Story Of Speed And Simplicity was originally published in Code Like A Girl on Medium, where people are continuing the conversation by highlighting and responding to this story.


Children and Youth Planning Table of Waterloo Region

25% Reduced Capacity on the CYPT Backbone Team

Over 2024, we have said goodbye to five CYPT Backbone Team staff. Due to funding limitations, we are headed into 2025 with these five seats vacant. These vacancies result in 45% fewer team members on the CYPT Backbone Staff team and 25% lower capacity to support the work of the collaborative. The reduction in CYPT Backbone Staff capacity will mean that the speed of CYPT work will slow down. Read below for more details and how we are mitigating.

 

Continued Reduced Administrative Support

The part-time CYPT Program Administration role remains vacant since July 2024. Sevil Berenji continues to temporarily hold most of this portfolio of work (thank you Sevil!). This means that her typical project management support continues to be reduced. Please connect with Sevil (SBerenji@regionofwaterloo.ca) as a first point of contact at the CYPT.

 

Continued Reduced Youth Engagement Work

Our Youth Engagement Team remains a team of one: Joana Lincho, Youth Engagement in Systems Lead. Our three Youth Connectors ended their contracts in June and we have not yet been able to bring on a new cohort. Joana has moved forward the Sense Making work with the 2023 Youth Impact Survey data, and the creation of the next Data in Action report, however at a slower pace.

 

Reduced Coaching & Sustainability Work

In September 2023, Margie McLean rejoined the CYPT Backbone Team in a new part-time role as the Coaching and Sustainability Lead. Before that, she was in the role of part-time Communications Coordinator for four years. December 31st is Margie’s last day in this current role on the CYPT Team. Margie played a significant role in many core projects in 2024, including the 2023 Youth Impact Survey Data Briefs, Disaggregated Data Snapshots, and the Annual Conference. Without her support moving forward, we anticipate projects to take longer as the rest of the team is stretched to meet demands.

It’s been wonderful to have the chance to work with Margie again, and we’d like to thank Margie for all her excellent work, her kindness and humour, and for always being willing to jump in and help anyone.

 

Thank you Abbey, Autumn, and Sierra!

 

In addition, Abbey Mcintosh, Autumn Chambers, and Sierra Sousa are ending their student placement with the CYPT in November. We’d like to thank them for all their great work over the past two months and wish them all the best as they pursue their Bachelor of Early Learning at Conestoga College!

 

Questions?

We appreciate your understanding at this time. If you have any questions please reach out to Alison Pearson, Manager of the CYPT, at APearson@regionofwaterloo.ca.

The post 25% Reduced Capacity on the CYPT Backbone Team appeared first on Children and Youth Planning Table.


Code Like a Girl

LLMs Gone Wild: Juggling Privacy in the Multimodal Circus

Large Language Models (LLMs) are advancing faster than my toddler chasing a balloon. Just yesterday, we were marvelling at how LLMs could…

Continue reading on Code Like A Girl »


Elmira Advocate

DISHONEST, PROFESSIONAL AND AMATEUR LIARS HAVE CONFIDENCE IN LANXESS, GHD & THE MECP

 

I mean apparently they are so far down the road of dishonesty they likely feel that there is only one direction to go. I would suggest that that sole, remaining dishonest direction has them hot on the footsteps of  "Thelma and Louise" and we all know how that ended (mighty crash etc.). Maybe their goal is simply to pass on before their behaviour is fully exposed to the world. Maybe their goal is even more modest such as simply getting out of politics or various bureaucracies prior to the public recognition of their self-serving, anti public interest . Icons such as Peter Nygard (still pending?), Bill Cosby, Harvey Weinstein and a trove of others likely will exceed the size of their disgrace and public exposure but it will be seen and enjoyed nevertheless by the very few who have honestly opposed them.

The Agenda is out for next Monday's TRAC meeting and hoo boy are TRAC ever getting their hands even dirtier by participating in the entire sham of a process. Sebastian and a couple of others can honestly claim that they spoke up on a few significant issues but they are being used as window dressing by the really bad ones. In hindsight does anyone remember the name of a moderate or two within Adolph Hitler's Cabinet? O.K. if you feel that that comparison is too strong or stark how about moderates within any group who refuse to resign for self-serving reasons  despite knowing that the group have either lost their way or never had found it. 

The Agenda for next Monday is full of attempts to bolster the impression that Lanxess and the MECP are seriously on the hunt for better remediation methods. They are merely ten, fifteen to thirty years behind the timeline necessary to actually have the Elmira Aquifers remediated. Even now they are admitting on page 7 of their Minutes of the last meeting (Nov. 14/24) that even with a new initiative towards cleanup that NDMA for certain will require decades more time to occur.

Now keep in mind that it is the exact same organizations (Lanxess, CRA/GHD, MOE/MECP) who swore to Elmira citizens from 1990 through to almost 2017 that YES they would clean up the aquifers by 2028. That's over twenty-five years that they kept INSISTING  that everything was under control when numerous citizens, professionals and amateurs knew it couldn't be done. Then around 2016 sometime we heard the first peeps of  "...oh gosh this is harder than we thought. Maybe we won't get it done by 2028." That is now a crescendo of voices with predictions of the Elmira Aquifers achieving drinking water standards by 2050 or 2060.

I no longer believe a word they say. Why would I? They have lied, lied and then lied some more. DNAPL coverups continue to this day. They still admit on page 16 that there is approximately 2,000 kg. of "excess" chlorobenzene been discharged to the natural environment. That is most likely via free phase DNAPL discharge of raw chlorobenzene and that is why despite NDMA being difficult to achieve it's very low drinking water standard (9 ppt.); we still have lots of chlorobenzene in our Elmira Aquifers well above drinking water standards. If I know exactly where this free phase DNAPL migrated to off-site then why allegedly doesn't Lanxess, GHD and the MECP?  

Hence Elmira citizens feel free to believe whatever rubbish these parties tell you. It's always self-serving and intended to save them cleanup expenditures.




Code Like a Girl

Do You Need an OOP Language for Object-Oriented Programming?

How to Build Objects from Scratch

Continue reading on Code Like A Girl »


Code Like a Girl

Discover the Best Ways to Turn Disagreements into Growth

Learn Practical Techniques to Resolve Conflicts and Build Stronger Bonds

Continue reading on Code Like A Girl »


Code Like a Girl

Managers Stop Promoting Toxic Productivity

Stop equating long hours and overwork with commitment and success.

Continue reading on Code Like A Girl »


Code Like a Girl

Why The Best Productivity Hacks Won’t Save You from Distraction

The problem goes beyond our phone and social media.

Continue reading on Code Like A Girl »


James Davis Nicoll

Voices in the Dark / Alfred Hitchcock’s Ghostly Gallery By Alfred Hitchcock

Alfred Hitchcock’s Alfred Hitchcock’s Ghostly Gallery is an anthology of ghost stories targeted at school-age readers. Ghostly Gallery was illustrated by Fred Banbery.


Child Witness Centre

2024 Year-End Campaign

Support the most vulnerable when needed the most! Please give today to help provide every child in crisis with the immediate support they deserve.

The post 2024 Year-End Campaign first appeared on Child Witness Centre.


Carrie Snyder: Obscure Canlit Mama

Day 3 prompt for a creative pause

Day 3 Prompt

Draw & write. Gratitude dump!

Notes: I don’t like the phrasing I’ve decided to use here, but oh well. I went with it, and just dumped a random assortment of images and words onto the page, rather late in the day, to be honest. Songs: “Runnin’ Down A Dream,” by Tom Petty and “Love is Love,” by Grace Potter. Materials: pencil crayons and black pen.


xo, Carrie


Github: Brent Litner

brentlintner starred JohnCoates/Aerial

♦ brentlintner starred JohnCoates/Aerial · December 3, 2024 00:25 JohnCoates/Aerial

Apple TV Aerial Screensaver for Mac

Swift 20.8k 1 issue needs help Updated Dec 3

Elementary Teachers’ Federation of Ontario Waterloo Region

Celebrating Winter Holidays

Winter is filled with culturally significant holidays, and recognizing each one equitably can help to create a sense of belonging by honouring multiple ways and reasons to enjoy the season. Learning about these days throughout the season, you can foster intercultural awareness and offer experiences through which more students feel seen and respected. 

 

When planning, consider activities that are accessible to everyone, regardless of financial background or cultural identity. Providing students with options allows them to choose how they participate, ensuring that their personal comfort and situations are respected. 


WRDSB Administrative Procedure 1540, which outlines best practices and direction on acknowledging Days of Significance in a meaningful way, may be a helpful resource.  Similarly, this blog post from the ETFO's heartandart.ca offers valuable tips.


The Backing Bookworm

Hopeless in Hope


This book blew me away.
Hopeless in Hope is a story of compassion, forgiveness and, yes, hope.  It's a story about family, courage and finding your way despite the unfair things life will throw at you.
It's an emotionally heavy story at times, but at the heart of this Teen book is Eva Brown, a 14-year-old Indigenous girl who is trying to hold her family together. Her mother Shirley is an alcoholic and has been in and out of Eva and Eva's younger brother Marcus' lives and their elderly Nohkum (grandmother) has been their only constant. But when Nohkum has an accident and is in the hospital for weeks, Eva and Marcus are placed separately in foster care.
John-Kehewin successfully tackles several weighty issues including poverty, bullying, alcoholism, anxiety, disconnection from culture and intergenerational trauma. Eva is bulled for her weight, her threadbare clothing and her Indigenous heritage and finds solace with her Nohkum and in her own writing. Poetry plays an important role in her healing, and we witness how she begins to understand her mother and her family's past as she works through her own feelings of fear and her lack of connection to family and culture. 
With a well-drawn and diverse cast (Grace, Eva's foster mother may be my favourite of the bunch), this story is well-written, immersive and poignant and is an exceptional debut. It brought me to tears in a few spots but don't let its short page count fool you. Hopeless in Hope is a powerful and engaging coming-of-age story with emotional themes and a memorable cast of characters that will give readers much to discuss.

My Rating: 5 starsAuthor: Wanda John-KehewinGenre: Teen, Canadian, IndigenousType and Source: Trade paperback from public libraryPublisher: Highwater PressFirst Published: Sept 5, 2023Read: Nov 24-25, 2024

Book Description from GoodReads: We live in a hopeless old house on an almost-deserted dead-end street in a middle-of-nowhere town named Hope. This is the oldest part of Hope; eventually it will all be torn down and rebuilt into perfect homes for perfect people. Until then, we live here: imperfect people on an imperfect street that everyone forgets about. For Eva Brown, life feels lonely and small. Her mother, Shirley, drinks and yells all the time. She’s the target of the popular mean girl, and her only friend doesn’t want to talk to her anymore. 
All of it would be unbearable if it weren’t for her cat, Toofie, her beloved nohkum, and her writing, which no one will ever see. When Nohkum is hospitalized, Shirley struggles to keep things together for Eva and her younger brother, Marcus. After Marcus is found wandering the neighbourhood alone, he is sent to live with a foster family, and Eva finds herself in a group home. 
Furious at her mother, Eva struggles to adjust―and being reunited with her family seems less and less likely. During a visit to the hospital, Nohkum gives Eva Shirley’s diary. Will the truths it holds help Eva understand her mother? Heartbreaking and humorous, Hopeless in Hope is a compelling story of family and forgiveness.

Code Like a Girl

How to Overcome a Sync Nightmare: A Developer’s Story

How A Realm iCloud Sync Failure Led to a Better Solution

Continue reading on Code Like A Girl »


Grand River Rocks Climbing Gym

New Member December (IN-PERSON ONLY)

The post New Member December (IN-PERSON ONLY) appeared first on Grand River Rocks Climbing Gym.


Grand River Rocks Climbing Gym

New Member December (IN-PERSON ONLY)

The post New Member December (IN-PERSON ONLY) appeared first on Grand River Rocks Climbing Gym.