Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XS✔ ◾ 🐛 Fix Duplicate Image Name #7938

Merged
merged 2 commits into from
Feb 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions rules/architecture-diagram/rule.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Check out the [8 Tips to Better Architecture Diagrams](https://adamcogan.com/202
:::

::: bad img-medium
![Figure: Bad example - A screenshot of the Azure resources used helps, but doesn't show data flows or dependencies](image001.jpg)
![Figure: Bad example - A screenshot of the Azure resources used helps, but doesn't show data flows or dependencies](bad-azure-resource-screenshot.jpg)
:::

Depending on the complexity of your solution and your comfort/familiarity with the tools, an architecture diagram could take you anywhere from half an hour to a couple of days.
Expand Down Expand Up @@ -100,13 +100,13 @@ Group components logically by enclosing them in a box. Components that operate i
![Figure: Good example - SSW Rewards (Xamarin with Azure Active Directory B2C) - consistent styling is used. E.g. as well as all the icons and typography being consistent, you can see that data is a solid line and auth traffic is a dotted line](rewards-architecture-diagram.png)
:::

### Tip #6: Start with paper...
### Tip #6: Start with paper

Make sure you use the right tools when creating your architecture diagrams. There's nothing wrong with starting out with pen and paper, but your hand-drawn sketch should not be considered your 'done' final architecture diagram. If you want to save paper, and increase collaboration, a great alternative is the trusty old whiteboard.

For me its all about building a shared understanding between the client and the developers. Most pieces of software architecture I do, work starts by building a rough solution architecture diagram on a whiteboard.
For me its all about building a shared understanding between the client and the developers. Most pieces of software architecture I do, work starts by building a rough solution architecture diagram on a whiteboard.

Putting something on a whiteboard is "low risk" for the participants as its really easy to wipe and redraw. It allows us to start working together straight away, building a shared understanding of what we're trying to achieve. There is no software or skills required to participate in whiteboard collaboration.
Putting something on a whiteboard is "low risk" for the participants as its really easy to wipe and redraw. It allows us to start working together straight away, building a shared understanding of what we're trying to achieve. There is no software or skills required to participate in whiteboard collaboration.

> A key milestone in the early engagement is the first time a client takes the pen and starts using the whiteboard to explain something to me. Early use of the whiteboard is all about immediate communication. Later, the solution design starts to solidify and we can then use the last state of the whiteboard to make out first architecture diagram.
>
Expand Down Expand Up @@ -164,7 +164,7 @@ Maintain standards to keep your diagrams consistent:

### Tip #9: Where to store Diagrams?

Standardizing where your organisation stores architecture diagrams ensures a consistent experience among developers. Therefore store your architecture diagrams in the repo **docs**\ folder. Additionally, the \README.md (in the root) should have a link and an embedded image of the high-level architecture diagram (from the **docs**\\* folder).
Standardizing where your organisation stores architecture diagrams ensures a consistent experience among developers. Therefore store your architecture diagrams in the repo **docs**\ folder. Additionally, the \README.md (in the root) should have a link and an embedded image of the high-level architecture diagram (from the **docs**\\* folder).

**Note:** If you have a Wiki, for visibility add an architecture diagram page and embed the images from the **docs**\\* folder.

Expand Down
8 changes: 3 additions & 5 deletions rules/azure-devops-permissions/rule.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,14 @@ Instead of giving Project Admin access to all team members in Azure DevOps, it i
Example: To create Sprints in Azure DevOps, you only need two bits of permission:

1. Create child nodes on the backlog node for the team.
a. Navigate to the project in Azure DevOps | Project Settings
a. Navigate to the project in Azure DevOps | Project Settings
b. Under "Boards" select Project configuration | Click on the ellipses (...) on Interations | Security
c. Add users and assign particular permission.
c. Add users and assign particular permission.

![Figure: Assign limited access to a particular user to create a Sprint ](child_node.jpg)

2. You need to be a team admin, in order to add the newly created iteration to the team iterations.

![Figure: Team Administrator - Who have access to iterations in Azure DevOps](image002.png)
![Figure: Team Administrator - Who have access to iterations in Azure DevOps](team-administrator.png)

By following this rule and giving people only the specific permissions they need, you can help to ensure that Azure DevOps permissions are set up in a way that maximizes productivity and minimizes the risk of errors or unwanted changes.


10 changes: 5 additions & 5 deletions rules/do-you-know-how-to-enter-a-hubdoc-receipt/rule.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,22 @@ Hubdoc is great for tracking and accounting for receipts, but if you don't use i

<!--endintro-->

To avoid confusion, add as much detail as possible about the purchase and who authorized it. To make this easier, your company can set some required fields to ensure that you have all of the relevant data entered for each claim. This will make your claims a lot more unified and easier to process.
To avoid confusion, add as much detail as possible about the purchase and who authorized it. To make this easier, your company can set some required fields to ensure that you have all of the relevant data entered for each claim. This will make your claims a lot more unified and easier to process.

![Figure: Users to accept invite to use Hubdoc](ac.png)
![Figure: Users to accept invite to use Hubdoc](ac.png)

![Figure: Take a photo with the Mobile Hubdoc app](de.png)

![Figure: Photo of Receipt and submitting basic invoice details - generally is read by OCR of the software](wer.png)

![Figure: Details that can be automated for Accounting reconciliation purposes](che.png)

The user or the administrator of the account can set up rules for each invoice in regards to their publication status and reconciliation details on the first instance. Going forward, any repeat of the invoice or the supplier will be filled in based on those rules set up.
The user or the administrator of the account can set up rules for each invoice in regards to their publication status and reconciliation details on the first instance. Going forward, any repeat of the invoice or the supplier will be filled in based on those rules set up.

There is still an opportunity to review all the details, so setting up rules will simply fill in the repeat details each time. This is to ensure consistency in the reconciliations and save time for both user and the Accountant.

Depending on the permissions of the User, they can also publish the invoice to Xero which can be recognised conveniently when completing the reconciliation process on Xero.

**Tip:** Hubdoc will automatically create folders to categorise the invoices and store for the user. These folders can be reorganised or renamed with ease. We recommend updating the folders early on so the invoices are collated in a useful manner for your business.
**Tip:** Hubdoc will automatically create folders to categorise the invoices and store for the user. These folders can be reorganised or renamed with ease. We recommend updating the folders early on so the invoices are collated in a useful manner for your business.

![Figure: Email link](1.png)
![Figure: Folders in Hubdoc](folders-in-Hubdoc.png)
18 changes: 9 additions & 9 deletions rules/do-you-use-gzip/rule.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,21 @@ For more information about how to use PageSpeed to find which files on your site

Use one of the methods described below to add Gzip compression to your site ASP.Net/Angular website

* Method 1: Turn on "Dynamic Content Compression" In IIS Server.
![Figure: Choose the website which you want to use Gzip and click on Compression.](2.png)
![Figure: Install "dynamic content compression" if you haven't installed it.](3.png)
* Method 1: Turn on "Dynamic Content Compression" In IIS Server.
![Figure: Choose the website which you want to use Gzip and click on Compression.](use-gzip-2.png)
![Figure: Install "dynamic content compression" if you haven't installed it.](use-gzip-3.png)

In **Control Panel** navigate to **All Control Panel Items | Programs and Features**, and click **Turn Windows features on or off**.
Choose **Internet Information Services | Web Management Tools | World Wide Web Services | Performance Features | Dynamic Content Compression**.
![Figure : Click "Ok" to install it.](4.png)
![Figure: now enable dynamic content compression for your site.](5.png)
![Figure : Click "Ok" to install it.](use-gzip-4.png)
![Figure: now enable dynamic content compression for your site.](use-gzip-5.png)

* Method 2: Using “Gzipper” in your Angular website
Follow https://www.npmjs.com/package/gzipper (but it still need IIS Server enable static content compression). Using `npm i gzipper -g` to install "gzipper" first. Add to scripts in your package.json
Follow <https://www.npmjs.com/package/gzipper> (but it still need IIS Server enable static content compression). Using `npm i gzipper -g` to install "gzipper" first. Add to scripts in your package.json
![](7.png)
![Figure: "Finish configuration like that.](6.png)
![Figure: "Finish configuration like that.](use-gzip-6.png)

* Method 3: Using ASP.NET code in MVC Refer to https://www.codeproject.com/Tips/1080065/Improve-the-Performance-of-ASP-NET-MVC-Web-Application.
* Method 3: Using ASP.NET code in MVC Refer to <https://www.codeproject.com/Tips/1080065/Improve-the-Performance-of-ASP-NET-MVC-Web-Application>.
To implement this in ASP.NET MVC, we can utilize `ActionFilterAttribute` and override either `OnActionExecuting` or `OnResultExecuting` method. The below code snippet is being used to check whether the current request browser can accept GZIP/DEFLATE encoding by looking at Accept-Encoding request header. If it finds GZIP encoding in this header, then we would set gzip in Content-encoding in response header and if it supports DEFLATE, then this code would set deflate in Content-encoding.

```csharp
Expand Down Expand Up @@ -93,7 +93,7 @@ To implement this in ASP.NET MVC, we can utilize `ActionFilterAttribute` and ove
::: bad
Figure: Bad Example, files with large size and slow load time.
:::

::: good
![Figure: Good Example, gzipped files with smaller size and faster load time.](5.28.7.png)
:::
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ redirects: []

---

In today’s overcrowded marketplace there are dozens of businesses offering the same goods and services with little to no variety, and for a consumer, this can result in it being hard to decide which one will provide the best value and service. Which is why Lead Magnets, if used correctly - can be a powerful addition to your overall Marketing Strategy.
In today’s overcrowded marketplace there are dozens of businesses offering the same goods and services with little to no variety, and for a consumer, this can result in it being hard to decide which one will provide the best value and service. Which is why Lead Magnets, if used correctly - can be a powerful addition to your overall Marketing Strategy.

<!--endintro-->

Expand All @@ -31,4 +31,4 @@ A Lead Magnet refers to any content piece; webinar, eBook, infographic, or initi

Lead Magnets not only provide a starting place for consumers to solve their initial problem, but also build trust between the consumer and your brand, increasing the likelihood of a return customer, and increasing your potential revenue.

![Figure: Lead Magnet on the SSW site](Picture2.png)
![Figure: Lead Magnet on the SSW site](lead-magnet.png)
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ Content marketing is a great way to increase interest in your business and helps

The best way to achieve this is to use gated content, which requires potential leads to provide their details in order to access the content offered. There are a number of platforms which allow you to create these forms and embed them onto your site.



At SSW we did some research, and after initially using LeadPages, we decided to swap to OptinMonster. This choice was made for a few reasons, OptinMonster is significantly cheaper than LeadPages, and provides all the features we required including; form builders, pop-up forms, mobile friendly, A/B testing and tracking.
![](Picture1.png) **Figure: Example of OptinMonster pop-up form on [SSWTV](https://tv.ssw.com/)
![](example-OptinMonster.png) **Figure: Example of OptinMonster pop-up form on [SSWTV](https://tv.ssw.com/)
**
3 changes: 1 addition & 2 deletions rules/do-you-use-pagespeed/rule.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ Install PageSpeed from [Chrome web store](https://chrome.google.com/webstore/det

![Figure: Install PageSpeed Insights (with PNaCl)](2d.png)


### How to use PageSpeed?

In Developer Tools (F12), you will have a new tab named PageSpeed.
Expand All @@ -36,4 +35,4 @@ In Developer Tools (F12), you will have a new tab named PageSpeed.

The result of the analysis will be displayed in the PageSpeed tab.

![Figure: Some files can be compressed more than 80%](1.png)
![Figure: Some files can be compressed more than 80%](compressed-result.png)
7 changes: 3 additions & 4 deletions rules/do-you-use-the-best-code-analysis-tools/rule.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,9 @@ Get ReSharper to green on each file you touch. You want the files you work on to
* Alt + [Page Down/Page Up] : Next/Previous Resharper Error / Warning
* Alt + Enter: Smart refactoring suggestions


![Figure: ReSharper will show Orange when it detects that there is code that could be improved](48bc81\_image001.png)

![Figure: ReSharper will show green when all code is tidy](image002.png)
![Figure: ReSharper will show green when all code is tidy](ReSharper-green.png)

### Level 2

Expand Down Expand Up @@ -87,11 +86,11 @@ Create a **GlobalSuppressions.cs** file in your project with the rules that

![Figure: The suppressions file tells Code Analysis which rules it should disable for specific code blocks](suppressions-file.png)

**More Information:** [Do you make instructions at the beginning of a project and improve them gradually?](/do-you-make-instructions-at-the-beginning-of-a-project-and-improve-them-gradually) and https://docs.microsoft.com/en-us/visualstudio/code-quality/in-source-suppression-overview
**More Information:** [Do you make instructions at the beginning of a project and improve them gradually?](/do-you-make-instructions-at-the-beginning-of-a-project-and-improve-them-gradually) and <https://docs.microsoft.com/en-us/visualstudio/code-quality/in-source-suppression-overview>

### Level 8

The gold standard is to use
The gold standard is to use
[SonarQube](https://www.sonarqube.org/), which gives you the code analysis that the previous levels give you as wells as the ability to analyze technical debt and to see which code changes had the most impact to technical debt

![Figure: SonarQube workflow with Visual Studio and Azure DevOps](2016-06-08\_12-59-38.png)
Expand Down
2 changes: 1 addition & 1 deletion rules/have-good-lighting-on-your-home-office/rule.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Here are some tips:
:::

::: good
![Figure: Good example - Person is the brightest subject in the frame](good-example.png)
![Figure: Good example - Person is the brightest subject in the frame](good-video-background.png)
:::

A good tip from [The Spruce blog](https://www.thespruce.com/tips-for-better-home-office-lighting-1812436) is to position your home office station facing north or south so that the sunlight doesn't throw a shadow at any point during the day, making you move your setup frequently.
Expand Down
16 changes: 7 additions & 9 deletions rules/how-to-install-skypepop/rule.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ redirects:
---

All company receptionists should install SkypePOP on your PC.

This will enable you to get Dynamics CRM contact popups on incoming calls, for example:

1. Bob Northwind calls you
Expand All @@ -32,12 +32,11 @@ Only receptionists should have SkypePOP installed.

2. The CRM contact pops up (or a "new contact" form if the number is not already in your CRM):

![Figure: Example contact popup on our CRM from incoming caller with the number +61420241201](1.png)
![Figure: Example contact popup on our CRM from incoming caller with the number +61420241201](example-email-a-link.png)

3. Send Email

![Figure: This email will be created – send it to the person you are forwarding the call to](2.png)

![Figure: This email will be created – send it to the person you are forwarding the call to](send-email.png)

4. Inform the person the call is being transferred to that you have sent him an email with the CRM Contact

Expand All @@ -55,7 +54,7 @@ Only receptionists should have SkypePOP installed.

3. Add your CRM connection details

**Tip:** Go to Main | Settings | Customizations | Developer Resources in order to find the address for your CRM
**Tip:** Go to Main | Settings | Customizations | Developer Resources in order to find the address for your CRM

![Figure: Copy the Endpoint Address for your Organization Service](CRM_Endpoint_Address_SkypePOP.jpg)

Expand All @@ -65,21 +64,20 @@ Only receptionists should have SkypePOP installed.

![Figure: Right-click on the icon in the taskbar and select 'Preferences'](2016-12-22_9-13-03.jpg)

5. Configure the **Dynamics CRM** settings to something similar to this:
5. Configure the **Dynamics CRM** settings to something similar to this:

![Figure: These are the default SkypePOP settings](50.jpg)

6. Open Skype for Business

7. Review the **SkypePOP - Skype for Business** settings

![Figure: These are the default Skype for Business settings](2016-11-18_16-44-59.jpg)

8. Ensure both Dynamics CRM and Skype for Business are connected by clicking on the tray icon

![Figure: Check that you are properly connected - blue is success](2016-11-18_16-47-00.jpg)


The SkypePOP demo license will stop working after 5 hours or 5 calls

**Tip:** Reduce the time used by quitting SkypePOP - you do that by right clicking | Exit on the tray icon
Expand Down
2 changes: 1 addition & 1 deletion rules/linkedin-creator-mode/rule.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ You can turn on creator mode to get access to [additional tools and features](ht
For example, you can add topics you post the most about in the form of hashtags so users can find your profile when they are searching for a topic they want to learn more about.

::: bad
![Figure: Bad example - no hashtags](Picture1.png)
![Figure: Bad example - no hashtags](bad-no-hashtag.png)
:::

::: good
Expand Down
Loading