Page Category: Resource
-  
HTTP Server Response Codes
HTTP, or Hypertext Transfer Protocol, serves as the backbone for data communication across the World Wide Web. It functions as an application-layer protocol designed to transmit hypermedia documents, such as HTML. While its primary role is enabling communication between web browsers and servers, it has versatile applications. HTTP adheres to a classical client-server model, wherein a client initiates a connection to make a request and awaits a response. One key characteristic of HTTP is its stateless nature, where the server retains no data (state) between consecutive requests.
HTTP relies on a system of response codes, each comprising three digits, to communicate the status of a client’s request. These codes are indispensable for interpreting the outcome of an HTTP transaction. They are systematically categorized into ranges, with each range signifying a specific class of response.
The 100 Series: Informational Codes
The 100 series of HTTP status codes indicates that the initial portion of a request has been received by the server and has not been rejected. The server intends to provide a final response after processing the request entirely.
Code 100 – Continue
This interim response directs the client to proceed with the request or disregard the response if the request is already completed.
Code 101 – Switching Protocols
This code is dispatched in response to an Upgrade request header from the client, signaling the server’s intent to transition to a different protocol.
Code 102 – Processing
Code 102 signifies that the server has received the request and initiated processing, although a response is not yet available.
Code 103 – Early Hints (Experimental)
Primarily tailored for use with the Link header, this status code enables the user agent to commence preloading resources while the server readies a response.
The 200 Series: Success Codes
The 200 series of response codes denotes the successful fulfillment of an HTTP request. The most recognized code within this range is “200 OK,” signifying that the server successfully processed the request and is providing the requested data. This series predominantly addresses positive outcomes.
Code 200 – OK
This code confirms that the request has been satisfied.
Code 201 – CREATED
Following a POST command, this code indicates success. However, the response line contains the URI under which the newly created document should be known.
Code 202 – Accepted
The request has been acknowledged for processing, but the processing is ongoing. It may or may not be acted upon in the future, as it may be disallowed when actual processing occurs. Asynchronous operations do not support status returns in this context.
Code 203 – Partial Information
In the response to a GET command, this code signifies that the returned metainformation is not a definitive representation of the object from a server with a copy of the object. Instead, it is from a private overlaid web and may include annotation information about the object.
Code 204 – No Content
This response suggests that no content is available for the request, but the headers remain valuable. The user agent may update its cached headers for this resource with the new ones.
Code 205 – Reset Content
This instructs the user agent to reset the document that sent the request.
Code 206 – Partial Content
Used when the client sends a Range header to request only a portion of a resource.
Code 207 – Multi-Status
This code imparts information about multiple resources, applicable when multiple status codes might be pertinent.
Code 208 – Already Reported
Found within a response element, this code aims to prevent repeated enumeration of internal members of multiple bindings to the same collection.
Code 226 – IM Used
This code signifies the server’s fulfillment of a GET request for the resource, with the response representing the result of one or more instance-manipulations applied to the current instance.
The 300 Series: Redirection Codes
The 300 series of codes informs the client of the necessity for additional actions to complete the request. Notable examples include “301 Moved Permanently” and “302 Found,” guiding the client to a new location for the requested resource. These codes facilitate URL redirection, proving valuable for handling relocated or renamed resources.
Code 301 – Moved Permanently
This code indicates that the URL of the requested resource has permanently changed, with the new URL provided in the response.
Code 302 – Found
Signaling a temporary change in the URI of the requested resource, further URI modifications may occur in the future. The client should continue using this URI for future requests.
Code 303 – See Other
The server responds with this code to instruct the client to retrieve the requested resource at another URI using a GET request.
Code 304 – Not Modified
Employed for caching purposes, this code informs the client that the response remains unaltered, allowing the continued use of the cached response.
Code 305 – Use Proxy (Deprecated)
Formerly part of the HTTP specification, this code indicated that a proxy must be used to access a requested response. It has been deprecated due to security concerns related to in-band proxy configuration.
Code 306 – Unused
This response code is obsolete and reserved. It was used in an earlier version of the HTTP/1.1 specification.
Code 307 – Temporary Redirect
Used when the server instructs the client to obtain the requested resource at another URI using the same method as the prior request. Similar to the 302 Found response code, the user agent must retain the HTTP method used.
Code 308 – Permanent Redirect
This code signifies the permanent relocation of a resource to another URI, indicated by the Location: HTTP Response header. Similar to the 301 Moved Permanently response code, the user agent must retain the HTTP method used.
The 400 Series: Client Error Codes
The 400 series of response codes signifies an issue with the client’s request. The most iconic code is “404 Not Found,” indicating the server’s inability to locate the requested resource. Others, such as “400 Bad Request” for malformed requests and “401 Unauthorized” requiring authentication, empower developers to diagnose and resolve client-related problems.
Code 400 – Bad Request
This code pertains to requests with erroneous syntax or inherently unsatisfiable criteria.
Code 401 – Unauthorized
The message parameter specifies acceptable authorization schemes. The client should reattempt the request with an appropriate Authorization header.
Code 402 – Payment Required
Similar to 401 Unauthorized, this code communicates the acceptability of charging schemes. The client may reattempt the request with a suitable ChargeTo header.
Code 403 – Forbidden
This response indicates that the request pertains to forbidden content, with authorization providing no remedy.
Code 404 – Not Found
This code signifies the server’s inability to locate the requested resource. In a browser, it suggests an unrecognized URL. In an API context, it indicates a valid endpoint but a nonexistent resource. Servers may use this response instead of 403 Forbidden to conceal a resource from an unauthorized client.
Code 405 – Method Not Allowed
The server acknowledges the request method but does not support it for the target resource. For instance, an API may disallow the DELETE method for resource removal.
Code 406 – Not Acceptable
Sent when the web server, after server-driven content negotiation, fails to find content adhering to the user agent’s criteria.
Code 407 – Proxy Authentication Required
Similar to 401 Unauthorized, but here, authentication is mandated via a proxy.
Code 408 – Request Timeout
Sent on idle connections by some servers, indicating a desire to terminate unused connections. This response is more common with browsers like Chrome, Firefox 27+, or IE9, which employ HTTP pre-connection mechanisms to enhance browsing speed. Some servers may simply close connections without sending this message.
Code 409 – Conflict
This code is issued when a request conflicts with the server’s current state.
Code 410 – Gone
Sent when the requested content has been permanently deleted without forwarding. Clients should remove their caches and links to the resource. The HTTP specification suggests this code for “limited-time, promotional services,” with APIs not obligated to employ it for deleted resources.
Code 411 – Length Required
The server rejects the request when the Content-Length header field is undefined and required by the server.
Code 412 – Precondition Failed
This code arises when the client specifies preconditions in its headers that the server cannot meet.
Code 413 – Payload Too Large
This indicates that the request entity exceeds the server’s defined limits. The server might close the connection or provide a Retry-After header field.
Code 414 – URI Too Long
This code signifies that the client’s requested URI exceeds the server’s capacity for interpretation.
Code 415 – Unsupported Media Type
This code indicates that the server does not support the media format of the requested data, leading to the request’s rejection.
Code 416 – Range Not Satisfiable
Used when the Range header field in the request cannot be fulfilled, potentially because the specified range exceeds the target URI’s data size.
Code 417 – Expectation Failed
This response code arises when the server cannot meet the expectation set by the Expect request header field.
Code 418 – I’m a Teapot
The server humorously refuses to brew coffee with a teapot. It’s a nod to the absurd and whimsical side of HTTP. It’s also prone to be both short and stout.
Code 421 – Misdirected Request
This code indicates that the request was directed at a server incapable of producing a response, often due to a mismatch between the scheme and authority in the request URI.
Code 422 – Unprocessable Content
The request is well-structured but cannot be processed due to semantic errors.
Code 423 – Locked
This code suggests that the resource being accessed is currently locked.
Code 424 – Failed Dependency
Issued when a request fails due to the failure of a previous request.
Code 425 – Too Early (Experimental)
Indicates the server’s reluctance to process a request that might be subject to replay.
Code 426 – Upgrade Required
The server declines to fulfill the request under the current protocol but is open to doing so once the client upgrades to an alternative protocol. The server communicates the required protocol(s) using an Upgrade header in the 426 response.
Code 428 – Precondition Required
The origin server mandates conditional requests to prevent the “lost update” problem, where a client GETs a resource’s state, modifies it, and PUTs it back, while a third party alters the server’s state simultaneously, leading to a conflict.
Code 429 – Too Many Requests
This code is triggered when a user sends an excessive number of requests within a defined time frame, often referred to as “rate limiting.”
Code 431 – Request Header Fields Too Large
The server refuses to process the request due to excessively large header fields. Resubmission is possible after reducing the request header field size.
Code 451 – Unavailable For Legal Reasons
This code signifies that the user agent sought a resource that cannot legally be provided, such as a web page censored by a government.
The 500 Series: Server Error Codes
The 500 series encompasses HTTP response codes indicative of server-related issues. Notable among these is “500 Internal Server Error,” pointing to an unforeseen error on the server that obstructed request fulfillment. Others include “502 Bad Gateway,” often encountered in proxy scenarios, and “503 Service Unavailable,” denoting temporary unavailability. These codes serve as valuable indicators for server administrators to identify and address internal issues.
Code 500 – Internal Error
The server confronts an unexpected condition that obstructs the request’s fulfillment.
Code 501 – Not Implemented
This code signifies the server’s lack of support for the required facility.
Code 502 – Service Temporarily Overloaded
When the server grapples with high loads, whether due to HTTP servicing or other requests, it cannot process the request. This condition is usually temporary, with alleviation expected at other times. Ironically, if a server is too overloaded, it may not be able to serve this response.
Code 503 – Service Unavailable
The server is unprepared to handle the request, often due to maintenance or overload. Along with this response, a user-friendly page explaining the issue should be provided. Caching-related headers are crucial for this temporary condition response, typically not meant for caching. The Retry-After HTTP header, if possible, should indicate the estimated recovery time for the service. Webmasters should also consider the caching-related headers in this context.
Code 504 – Gateway Timeout
This response surfaces when the server operates as a gateway and cannot obtain a response within the stipulated time.
Code 505 – HTTP Version Not Supported
This code signifies that the server cannot support the HTTP version used in the request.
Code 506 – Variant Also Negotiates
This code reflects an internal configuration error on the server. The chosen variant resource is configured to engage in transparent content negotiation, rendering it an unsuitable endpoint in the negotiation process.
Code 507 – Insufficient Storage
Issued when the server lacks the capacity to store the representation necessary to fulfill the request.
Code 508 – Loop Detected
The server detects an infinite loop while processing the request.
Code 510 – Not Extended
This code denotes that further extensions to the request are necessary for the server to meet it.
Code 511 – Network Authentication Required
Signifies that the client must authenticate to access the network.
 - 
What Is A Link Relationship (XFN) In WordPress?
XFN™ (XHTML Friends Network) is a simple way to represent human relationships using hyperlinks. It uses the rel attribute in HTML tags, often used in hyperlinks (ie. “<a href>”). What’s with the trademark? The Link relationship (XFN) stands for XHTML Friends Network. Global Multimedia Protocols Group made and maintains the XFN standards. XFN uses hyperlinks to represent real-world human relationships between individuals such as friends, relatives, contributors and colleagues.
When the website creator includes XFN information, it enables both people and search engines to interpret and establish more meaningful connections between websites and individuals. Incorporating XFN links on your website can potentially enhance its search engine optimization (SEO).
List of XFN values that you can use
There are more relationships that you can use besides a friend and those the creator may have met in real life. This is a full list of XFN link relationships values available.
Some descriptions of the XFN relationships can be found at the XFN Getting Started page.
identity
Use this if the link is to another of your own websites. This relationship is exclusive of all others.
friendship
These radio buttons allow you to specify one of four different types of friendships:
- acquaintance – Someone with whom you have exchanged greetings and not much (if any) more — maybe a short conversation or two.
 - contact – Someone with whom you know how to get in touch.
 - friend – Someone you consider a friend. A compatriot, buddy, home(boy|girl) that you know.
 - none – Use this if you want to leave the friendship category blank.
 
physical
Use the met element in the rel attribute if this is someone whom you have actually met in person. With the prevalence of online relationships, this can be an important distinguishing element.
professional
- co-worker – Someone with whom you work or someone who works at the same organization as you.
 - colleague – Someone in the same field of study or activity.
 
geographical
- co-resident – Someone with whom you share a street address. A roommate. A Flatmate. A member of your family living in the same home.
 - neighbor – Someone who lives nearby, perhaps only at an adjacent street address or doorway.
 - none – Use this if you want to leave the geographical category blank.
 
family
Six options specify your familial relationship.
- child – Your genetic offspring. Or someone that you have adopted and take care of.
 - kin – A relative. Someone you consider part of your extended family.
 - parent – Your progenitor. Or someone who has adopted and takes care (or took care) of you.
 - sibling – Someone with whom you share a parent.
 - spouse – Someone to whom you are married.
 - none – Use this if you want to leave the family category blank.
 
romantic
Use these four option to define how “romantically” related the subject is to the author of the site.
- muse – Someone who brings you inspiration.
 - crush – Someone on whom you have a crush.
 - date – Someone you are dating.
 - sweetheart – Someone with whom you are intimate and at least somewhat committed, possibly exclusively.
 
Other Ways to Use the rel Attribute
The `rel` attribute in HTML (short for “relationship”) is commonly used in various HTML elements, such as links and meta tags, to specify the relationship between the current document and the linked resource. It helps search engines, browsers, and other tools understand the purpose and relationship of the linked resource. The value of the `rel` attribute should be a space-separated list of relationship values. Here are some common values that can be used with the `rel` attribute:
- Link Relationships for `<a>` (anchor) elements:
`nofollow`: Indicates that search engines should not follow the link. It’s good for linking to an asset. As a link can convey a transfer of authority, a nofollow attribute diminishes that transfer of authority.
`noopener`: Suggests that the link should open in a new browsing context (tab or window).
`noreferrer`: Specifies that no referrer information should be passed when the link is followed.
`external`: Indicates that the linked resource is an external page. - Icon Links for `<link>` elements (used for defining icons for the website):
`icon`: Specifies a favicon or shortcut icon for the website. - Stylesheet Link for `<link>` elements:
`stylesheet`: Specifies that the linked resource is a stylesheet. - Pagination for `<link>` elements:
`prev`: Indicates the previous document in a series.
‘next`: Indicates the next document in a series. - Author and License Information for `<a>` and `<link>` elements:
`author`: Indicates a link to the author of the current document.
`license`: Specifies a link to the license of the current document. - Alternate Versions for `<link>` elements (used for alternate language versions or different document formats):
– `alternate`: Indicates an alternate version of the current document - Search Engines for `<link>` elements:
– `search`: Indicates a search page. - RSS Feeds for `<link>` elements:
– `alternate`: Often used in `<link>` elements within the `<head>` to specify an RSS feed. - Canonical URL for `<link>` elements:
– `canonical`: Specifies the preferred version of a web page, particularly useful for duplicate content issues. - Social Media for `<link>` elements:
– `me`: Indicates a social media profile link (e.g., `rel=”me”` on a link to a personal Twitter profile). - Preloading for `<link>` elements:
– `preload`: Suggests that the linked resource should be preloaded to improve performance. - DNS Prefetching for `<link>` elements:
– `dns-prefetch`: Indicates that DNS prefetching should be performed for the linked resource. - Preconnect for `<link>` elements:
– `preconnect`: Suggests that the browser should establish a network connection to the linked resource in advance to reduce latency. 
These are some common values for the `rel` attribute, but you can also create custom values if needed. The choice of `rel` values depends on the specific context and purpose of the link or resource you are defining. It’s important to use appropriate values to accurately describe the relationship between the current document and the linked resource.
What About The Business Resource Network Standard?
The BRN (Business Resource Network) Standard is a way to provide relevance between business resources: to provide structured metadata for hyperlinks, allowing website owners and search engines to understand the nature of interactions between websites and businesses. Similar to XFN, BRN would utilize the rel attribute to describe these interactions.
Attributes and Values
- “supplier”: Indicates that the linked resource is a provider of goods and services. This could be a business or entity that offers products or services.
 - “competitor”: Signifies another web resource offering similar products or services, potentially in the same industry or niche.
 - “resource”: Represents a source of useful information and/or data. This can include educational resources, reference materials, or data sources.
 
Modifiers:
- “smaller”: Denotes that the linked resource is smaller in scope or scale relative to the source it is linked from. This can be used to specify a smaller subsidiary or division within a larger organization.
 - “larger”: Indicates that the linked resource is larger in scope or scale relative to the source it is linked from. This can represent a larger parent company or a more extensive division.
 - “expired”: Designates a resource that is no longer available, such as a discontinued product or an outdated webpage.
 - “promotion”: Highlights that the link leads to a promotional offer, which may not be a permanent or ongoing promotion.
 
Combining Attributes:
- “competitor larger” would mean a competitor that is larger in scale than the website source.
 - “supplier promotion” could describe a supplier that offers a temporary promotional deal on their products or services.
 - “resource expired” might indicate that the linked information source is no longer up to date or relevant.
 
BRN needs to evolve from a notion to a standard. What would come next: a dedicated webpage or documentation to explain its usage and encourage its adoption within the web development community. Additionally, collaboration with industry peers and organizations can help establish and promote this standard effectively.
 -  
Events that addEventListener Can Listen For
`addEventListener` in JavaScript allows you to listen for a wide range of events. Here’s a list of some common events that you can attach listeners to:
Mouse Events:
1. `click` – Mouse click.
2. `dblclick` – Double click.
3. `mousedown` – Mouse button is pressed.
4. `mouseup` – Mouse button is released.
5. `mousemove` – Mouse pointer moves.
6. `mouseover` – Mouse pointer enters an element.
7. `mouseout` – Mouse pointer leaves an element.
8. `mouseenter` – Similar to `mouseover`, but doesn’t bubble.
9. `mouseleave` – Similar to `mouseout`, but doesn’t bubble.
10. `contextmenu` – Right-click event.Keyboard Events:
11. `keydown` – Key is pressed down.
12. `keyup` – Key is released.
13. `keypress` – Character key is pressed.Form Events:
14. `submit` – A form is submitted.
15. `reset` – A form is reset.
16. `focus` – Element receives focus.
17. `blur` – Element loses focus.
18. `change` – Value of an input element changes.
19. `input` – Text input changes (modern browsers).
20. `select` – Text in an input or textarea is selected.Window and Document Events:
21. `load` – Window or frame finishes loading.
22. `unload` – Window or frame is unloaded.
23. `resize` – Window or frame is resized.
24. `scroll` – Document is scrolled.Touch Events (for mobile devices):
25. `touchstart` – A touch event starts.
26. `touchmove` – Touch point moves.
27. `touchend` – Touch event ends.Drag and Drop Events:
28. `dragstart` – Drag operation starts.
29. `dragend` – Drag operation ends.
30. `dragenter` – Element is dragged into a target.
31. `dragover` – Element is dragged over a target.
32. `dragleave` – Element is dragged out of a target.
33. `drop` – Element is dropped onto a target.Media Events:
34. `play` – Media starts playing.
35. `pause` – Media is paused.
36. `ended` – Media playback ends.Clipboard Events:
37. `copy` – Copy operation is triggered.
38. `cut` – Cut operation is triggered.
39. `paste` – Paste operation is triggered.Miscellaneous Events:
40. `error` – Error occurs.
41. `loadstart` – Resource starts loading (used for audio and video elements).
42. `loadeddata` – Media data is loaded.
43. `canplay` – Media can start playing.
44. `readystatechange` – State of the document (used for `document`).These are just some of the common events you can listen for. There are more specialized events and events related to specific elements and libraries. The exact set of events available may vary between browsers and JavaScript frameworks. You can find the full list of events in the documentation for the specific object or element you are working with.
Did I miss any? Let me know.
 - 

Is Your Site Accessible?
The population’s median age is climbing. Along with that comes the increased likelihood of accessibility issues– both visual and motor control issues. Accessibility is already an important topic and its import will only climb in the coming years. Site owners, web designers and marketers need to know where their websites stand when it comes to accessibility and compliance with existing standards and existing legislation.
The Merits of Accessibility Compliance
A website accessibility checker is a digital tool that serves as a quick and efficient way to scan your website for various accessibility issues and errors. These tools use automated testing and sometimes manual evaluation to identify potential problems related to web accessibility. The insights generated by a website accessibility checker provide a starting point for ensuring that your website complies with established accessibility standards, such as the Web Content Accessibility Guidelines (WCAG). These standards are essential for making your website usable by individuals with disabilities.
Website accessibility checkers are helpful for achieving compliance with recognized standards such as the Americans with Disabilities Act (ADA) and Section 508 of the Rehabilitation Act. For US-based businesses, compliance plays a role in preventing violations of accessibility-related legislation. By using these tools, website owners can proactively address accessibility issues and reduce the risk of legal actions. Canadian jurisdictions are closely aligned with the ADA and look the WCAG as a standard. Looking at Ontatio’s AODA legislation, the similarities are clear.
Accessible websites cater to users with disabilities but also enhance the overall user experience for everyone including machine readers such as search engine crawlers. They can positively impact your website’s search engine optimization (SEO). Search engines like Google consider user experience as a ranking factor, and accessibility is a fundamental aspect of a user-friendly experience.
Google introduced its Core Web Vitals algorithm update, which emphasizes user experience, in May 2020. This update highlights the growing significance of providing an accessible and user-friendly experience on your website. Therefore, ensuring that your website is accessible is not only a matter of legal compliance but also a strategic move to improve your website’s performance and reach a broader audience.
A website accessibility checker is a tool that identifies issues to address on your website, aligning it with recognized standards and legal requirements. Adopting WCAG improves the user experience and can have a positive impact on your website’s SEO.
Accessible? What A Report Can Tell You
An accessibility report is a crucial tool in the process of making a website accessible to individuals with disabilities. It provides insights and feedback about the current state of a website’s accessibility, highlighting areas that need improvement. Here’s how an accessibility report helps in making a website accessible:
- Identifies Accessibility Issues: Accessibility reports identify potential accessibility issues on a website. These issues can include problems with text alternatives for images, keyboard navigation, color contrast, and more. Automated tools can scan a website for known accessibility violations, while manual testing involves human testers who can identify issues that automated tools might miss.
 - Prioritizes Issues: The report typically categorizes the identified issues by severity or priority. This helps web developers and designers focus on fixing the most critical problems first. For example, issues that prevent screen reader users from accessing essential content would be considered high priority.
 - Provides Recommendations: In addition to identifying issues, accessibility reports often provide recommendations on how to fix the problems. These recommendations can include code snippets, design suggestions, or best practices for making content accessible. They can also provide links to relevant accessibility guidelines, such as the Web Content Accessibility Guidelines (WCAG).
 - Gives Detailed Information: Accessibility reports usually offer detailed information about each issue, including the location of the problem on the website, a description of the issue, and why it is important for accessibility. This information is valuable for developers and designers who need to understand the context and impact of each issue.
 - Allows for Testing and Validation: Once developers make changes to address the issues identified in the report, they can use the same report to validate that the changes have been effective. This iterative process helps ensure that the website becomes more accessible over time.
 - Compliance Documentation: In some cases, accessibility reports serve as documentation to demonstrate compliance with accessibility regulations or standards. This documentation can be important for legal and regulatory purposes.
 
An accessibility report is a valuable resource for web development teams and organizations committed to making their websites inclusive and accessible to all users, regardless of their abilities or disabilities. It helps identify, prioritize, and address accessibility issues, ultimately leading to a more inclusive online experience for everyone.
Site Accessibility Report
Get an Accessibility report.
 - 
Places To Find Money
A link of foundations, charities, organizations and government branches that may have funding available for your needs (charity, special event, venture, etc.). We have not applied to these foundations and offices for the most part, but they may have something for you and your needs.
National Organizations and Foundations
- Air Canada Foundation
 - Allstate Foundation of Canada
 - American Express Foundation Canada
 - Animal Welfare Foundation of Canada
 - Bayer Canada
 - Bill and Melinda Gates Foundation
 - Birks Family Foundation
 - BMO Employee Charitable Foundation
 - Canada Mortgage and Housing Corporation – Shelter Enhancement Program
 - Canada Post Community Foundation
 - Canada Revenue Agency (CRA)
 - Canadian Environmental Assessment Agency – Participant Funding Program
 - Canadian Heritage
 - Canadian Institutes of Health Research
 - Canadian Internet Registration Authority (CIRA)
 - Canadian Women’s Foundation
 - Catherine Donnelly Foundation
 - Changemakers (BCIdeas)
 - Charities Partnership and Outreach Program
 - Chrysler Canada Inc.
 - CN Community Investment Program
 - Delta Hotels
 - Desjardins
 - Dreamcatcher Charitable Foundation
 - Enabling Accessibility Fund
 - Fairmont Hotels and Resorts
 - Farm Credit Canada – AgriSpirit Fund
 - FedEx Canada
 - Finning Canada
 - Google Ad Grants
 - Green Shield Canada
 - Hearing Foundation of Canada
 - Home Depot Canada Foundation
 - Honda Canada Foundation
 - HSBC Bank Canada
 - ICCC Recipe For Success (more on the program)
 - Imperial Oil
 - Industrial Alliance Insurance and Financial Services
 - Inspirit Foundation
 - J.W. McConnell Family Foundation
 - KPMG Foundation
 - Loblaw Companies Limited
 - Manulife Financial
 - Maple Leaf Foods
 - McKesson Canada Foundation
 - McLean Foundation
 - Metcalf Foundation
 - Microsoft Canada
 - Molson Coors
 - Mountain Equipment Co-op (MEC)
 - MTV Staying Alive Foundation
 - Nestle Canada
 - Partners for Change
 - PetSmart Charities
 - Pixel Sweatshop Code for Change (programmed closed)
 - President’s Choice Children’s Charity Foundation
 - Pricewaterhouse Coopers Canada Foundation
 - RBC Financial Group
 - RCMP Foundation
 - Rexall Foundation
 - Small Change Fund
 - Sprott Foundation
 - Staples
 - Tangerine
 - TD Bank Financial Group
 - TD Financial Literacy Grants Program
 - The Co-operators Foundation
 - The Keg Spirit Foundation
 - The McLean Foundation
 - Tides Canada
 - Walter and Duncan Gordon Foundation
 - Xerox Canada
 - Youth Justice Renewal Initiative
 - Youth Take Charge Program
 
Government Sources
- BC BIDS
 - BC Economic Development
 - BC Community Gaming Grants
 - BC Government – Home
 - BC Government – Ministry of Agriculture
 - BC Government – Ministry of Justice
 - BC Healthy Communities
 - BDC Business Financing
 - Community Action Initiative Grants
 - Employment and Social Development Canada
 - Human Resources and Skills Development Canada
 - Minister’s Council on Employment and Accessibility
 - Provincial Employees Community Services Fund
 - Public Health Agency of Canada Funding Opportunities
 - Welcome BC
 
Heritage and Museums
- Canada Cultural Spaces Fund
 - Canadian Heritage Funding Programs
 - Heritage Legacy Fund of BC
 - PropDB Curation and Inventory Tool
 - The Maritime Awards Society of Canada
 - The Victoria Heritage Trust
 - Victoria Heritage Foundation
 
Victoria Area Funders
We are based in the Capital Region (Saanichton), so the Victoria based resources are something of an interest to us and our clients. Your community may have the equivalent resources.
- BC Healthy Communities
 - CIBC Community Funding
 - Columbia Institute
 - First West Foundation – Island Savings Community Endowment
 - Horner Foundation
 - Island Farms
 - LIFT Philanthropy Partners
 - Peninsula Co-op
 - Provincial Employees Community Services Fund
 - Shaw Communications
 - The Hamber Foundation
 - T.L.C. Fund for Kids
 - United Way of Greater Victoria
 - Vancity
 - VanCity Green Building Grant Program
 - Vancouver Foundation
 - Victoria Real Estate Board & (Build Your Dream)
 
Victoria Area Governments
- Capital Regional District (CRD)
 - City of Victoria
 - District of North Saanich
 - District of Saanich
 - District of Sooke
 - Salt Spring & Gulf Islands
 - Town of Sidney
 - Township of Esquimalt
 - View Royal
 
CrowdSourcing
Arts Funding
- ArtsBC
 - Alliance for Arts and Culture
 - Arts in Education Council of BC Fund
 - Arts Partners in Creative Development
 - ArtStarts – Artists in the Classroom (grants for schools)
 - ArtStarts – Artists in the Classroom (grants for districts)
 - ArtStarts – Cherniavsky Fund
 - British Columbia Arts Council
 - Building Communities through Arts and Heritage
 - Canadian Art Directory
 - Canada Cultural Spaces Fund
 - Canadian Heritage – Building Community Through Arts and Heritage
 - Capital Regional District – Arts Development Office
 - Community Arts Council of Greater Victoria
 - Community Gaming Grants
 - Creative BC
 - Dreamcatcher Charitable Foundation
 - Gainey Foundation
 - Inspirit Foundation
 - McLean Foundation
 - Salamander Foundation
 
Economic Development
- Aboriginal Business Service Network
 - Business Abilities
 - Community Futures
 - Futurpreneur Canada
 - Greater Victoria Chamber of Commerce
 - Island Coastal Economic Trust
 - Social Sciences Humanities Research Council
 - TRICO Charitable Foundation – Social Enterprise Funding
 - Vancity
 
Education
- BC Aboriginal Child Care Society
 - BC Teacher’s Federation
 - Birks Family Foundation
 - Catherine Donnelly Foundation
 - Computers for Schools
 - Desjardins
 - Donner Canadian Foundation Awards
 - Dr. Alan Middleton Workplace Literacy and Learning Award
 - Dreamcatchers Charitable Foundation
 - Finning Canada
 - Great-West Life, London Life and Canada Life Literacy Innovation Award
 - Honda Canada Foundation
 - HSBC Bank Canada
 - Imperial Oil
 - Indigo Love of Reading Foundation
 - Industrial Alliance Insurance and Financial Services
 - Life Literacy Canada
 - McKesson Canada Foundation
 - McLean Foundation
 - Microsoft Canada
 - PricewaterhouseCoopers Canada Foundation
 - Staples
 - StudentAidBC
 - TD Financial Literacy Grants
 - The Ken Spencer Award
 - The Wise Awards
 
Technology and Innovation
- Banting Research Foundation
 - Bayer Canada
 - BC Innovation Council
 - Canadian Institutes of Health Research
 - Michael Smith Foundation for Health Research
 - National Research Council Canada
 - Networks of Centres of Excellence
 - University of Victoria – Office of Research Services
 
Small Business
- Business Development Bank of Canada (BDC)
 - Enterprising Non-Profits Program
 - Google’s Grants for Non-Profits
 - Innoweave
 - Small Business Funding Center
 
 - 
Date Formats For PHP
I lifted this from PHP.net as I am forever forgetting where it is. Here’s the original / true source: https://www.php.net/manual/en/datetime.formats.date.php
The following characters are recognized in the formatparameter stringformatcharacterDescription Example returned values Day — — d Day of the month, 2 digits with leading zeros 01 to 31 D A textual representation of a day, three letters Mon through Sun j Day of the month without leading zeros 1 to 31 l (lowercase ‘L’) A full textual representation of the day of the week Sunday through Saturday N ISO-8601 numeric representation of the day of the week (added in PHP 5.1.0) 1 (for Monday) through 7 (for Sunday) S English ordinal suffix for the day of the month, 2 characters st, nd, rd or th. Works well with j w Numeric representation of the day of the week 0 (for Sunday) through 6 (for Saturday) z The day of the year (starting from 0) 0 through 365 Week — — W ISO-8601 week number of year, weeks starting on Monday Example: 42 (the 42nd week in the year) Month — — F A full textual representation of a month, such as January or March January through December m Numeric representation of a month, with leading zeros 01 through 12 M A short textual representation of a month, three letters Jan through Dec n Numeric representation of a month, without leading zeros 1 through 12 t Number of days in the given month 28 through 31 Year — — L Whether it’s a leap year 1 if it is a leap year, 0 otherwise. o ISO-8601 week-numbering year. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead. (added in PHP 5.1.0) Examples: 1999 or 2003 Y A full numeric representation of a year, 4 digits Examples: 1999 or 2003 y A two digit representation of a year Examples: 99 or 03 Time — — a Lowercase Ante meridiem and Post meridiem am or pm A Uppercase Ante meridiem and Post meridiem AM or PM B Swatch Internet time 000 through 999 g 12-hour format of an hour without leading zeros 1 through 12 G 24-hour format of an hour without leading zeros 0 through 23 h 12-hour format of an hour with leading zeros 01 through 12 H 24-hour format of an hour with leading zeros 00 through 23 i Minutes with leading zeros 00 to 59 s Seconds with leading zeros 00 through 59 u Microseconds (added in PHP 5.2.2). Note that date() will always generate 000000 since it takes an integer parameter, whereas DateTime::format() does support microseconds if DateTime was created with microseconds. Example: 654321 v Milliseconds (added in PHP 7.0.0). Same note applies as for u. Example: 654 Timezone — — e Timezone identifier (added in PHP 5.1.0) Examples: UTC, GMT, Atlantic/Azores I (capital i) Whether or not the date is in daylight saving time 1 if Daylight Saving Time, 0 otherwise. O Difference to Greenwich time (GMT) without colon between hours and minutes Example: +0200 P Difference to Greenwich time (GMT) with colon between hours and minutes (added in PHP 5.1.3) Example: +02:00 T Timezone abbreviation Examples: EST, MDT … Z Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. -43200 through 50400 Full Date/Time — — c ISO 8601 date (added in PHP 5) 2004-02-12T15:19:21+00:00 r » RFC 2822 formatted date Example: Thu, 21 Dec 2000 16:01:07 +0200 U Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) See also time()