<feed xmlns="http://www.w3.org/2005/Atom"><title type="text">Mateusz Ligeza</title><subtitle type="text">Mateusz Ligeza</subtitle><id>http://mateuszligeza.com/</id><updated>2022-05-09T10:17:59Z</updated><author><name>Mateusz Ligeza</name><uri>http://mateuszligeza.com</uri><email>dev.mateusz.ligeza@gmail.com</email></author><generator>Sandra.Snow Atom Generator</generator><link rel="alternate" href="http://mateuszligeza.com/feed.xml" /><link rel="self" type="text/html" title="Mateusz Ligeza" href="http://mateuszligeza.com/feed.xml" /><entry><id>http://mateuszligeza.com/2022/05/shrink-virtual-disks/</id><title type="text">Shink virtual disks</title><summary type="html">&lt;p&gt;Repost of &lt;a href="https://superuser.com/questions/1307441/powershell-resize-vhd-is-not-recognized-as-the-name-of-a-cmdlet/1307442#1307442"&gt;Stack Overflow answer&lt;/a&gt;&lt;br /&gt;
It came handy when I was trying to free some disk space from the local docker instance&lt;/p&gt;

</summary><published>2022-05-06T00:00:00Z</published><updated>2022-05-06T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2022/05/shrink-virtual-disks/" /><content type="html">&lt;p&gt;Repost of &lt;a href="https://superuser.com/questions/1307441/powershell-resize-vhd-is-not-recognized-as-the-name-of-a-cmdlet/1307442#1307442"&gt;Stack Overflow answer&lt;/a&gt;&lt;br /&gt;
It came handy when I was trying to free some disk space from the local docker instance&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;pre&gt;&lt;code&gt;wsl --shutdown
diskpart
# open Diskpart in new window
select vdisk file="C:\WSL-Distros\…\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Maybe someday there will be more elegant way to do it: &lt;a href="https://github.com/microsoft/WSL/issues/4699"&gt;WSL GitHub Issue&lt;/a&gt;&lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2021/03/google-maps-intent-for-android/</id><title type="text">Google maps intent for android</title><summary type="html">&lt;p&gt;&lt;a href="http://mateuszligeza.com/geo://q="&gt;Google Maps&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://mateuszligeza.com/google.navigation://?free=1&amp;amp;mode=d&amp;amp;entry=fnls"&gt;Google Maps driving mode&lt;/a&gt;&lt;/p&gt;
</summary><published>2021-03-19T00:00:00Z</published><updated>2021-03-19T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2021/03/google-maps-intent-for-android/" /><content type="html">&lt;p&gt;&lt;a href="http://mateuszligeza.com/geo://q="&gt;Google Maps&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://mateuszligeza.com/google.navigation://?free=1&amp;amp;mode=d&amp;amp;entry=fnls"&gt;Google Maps driving mode&lt;/a&gt;&lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/11/sql-server-adding-column-with-initial-value/</id><title type="text">Adding new non nullable column to SQL table with default value</title><summary type="html">&lt;pre&gt;&lt;code&gt;ALTER TABLE [schema].[Table]
ADD [NewColumn] INT NOT NULL CONSTRAINT [DF_Table_NewColumn] DEFAULT 2
GO

ALTER TABLE [schema].[Table] DROP CONSTRAINT [DF_Table_NewColumn]
GO
&lt;/code&gt;&lt;/pre&gt;
</summary><published>2020-11-01T00:00:00Z</published><updated>2020-11-01T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/11/sql-server-adding-column-with-initial-value/" /><content type="html">&lt;pre&gt;&lt;code&gt;ALTER TABLE [schema].[Table]
ADD [NewColumn] INT NOT NULL CONSTRAINT [DF_Table_NewColumn] DEFAULT 2
GO

ALTER TABLE [schema].[Table] DROP CONSTRAINT [DF_Table_NewColumn]
GO
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/06/requesting-ssl-certificate-from-lets-encrypt-with-manual-verification-for-azure-website/</id><title type="text">Requesting SSL certificate from Let's Encrypt using manual verification for Azure WebSite</title><summary type="html">&lt;p&gt;Summary of commands needed to quickly generate new SSL certificate for the Azure Website.
We will request the certificate from the &lt;a href="https://letsencrypt.org/"&gt;Let's Encrypt&lt;/a&gt; using &lt;a href="https://letsencrypt.org/docs/challenge-types/#http-01-challenge"&gt;manual HTTP-01 challenge&lt;/a&gt; and use &lt;a href="https://github.com/projectkudu/kudu"&gt;Kudu&lt;/a&gt; to pass the validation.&lt;/p&gt;

</summary><published>2020-06-18T00:00:00Z</published><updated>2020-06-18T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/06/requesting-ssl-certificate-from-lets-encrypt-with-manual-verification-for-azure-website/" /><content type="html">&lt;p&gt;Summary of commands needed to quickly generate new SSL certificate for the Azure Website.
We will request the certificate from the &lt;a href="https://letsencrypt.org/"&gt;Let's Encrypt&lt;/a&gt; using &lt;a href="https://letsencrypt.org/docs/challenge-types/#http-01-challenge"&gt;manual HTTP-01 challenge&lt;/a&gt; and use &lt;a href="https://github.com/projectkudu/kudu"&gt;Kudu&lt;/a&gt; to pass the validation.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;We will be using &lt;a href="https://certbot.eff.org/"&gt;certbot&lt;/a&gt; to request certificate using command line. Although it is possible to install it on windows (explained in this article &lt;a href="https://community.letsencrypt.org/t/running-certbot-on-windows-phase-1/28348/5"&gt;Running Certbot on Windows - Phase 1&lt;/a&gt;) it is much easier to run it from linux. In this article we will use both &lt;a href="https://docs.microsoft.com/en-us/windows/wsl/about"&gt;Windows Subsystem for Linux 2&lt;/a&gt; and azure vm.&lt;/p&gt;

&lt;h1&gt;Prepare Azure Website for the manual challenge&lt;/h1&gt;

&lt;p&gt;You need to configure you website tb be able to host the extensionless files under the url &lt;code&gt;http://&amp;lt;YOUR_DOMAIN&amp;gt;/.well-known/acme-challenge/&amp;lt;TOKEN&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In order to do that open the kudu console for you azure app (if your website azure url is &lt;code&gt;https://&amp;lt;websitename&amp;gt;.azurewebsites.net/&lt;/code&gt;, Kudu is accessible under &lt;code&gt;https://&amp;lt;websitename&amp;gt;.scm.azurewebsites.net/&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;Open Debug &lt;code&gt;Console &amp;gt; PowersShell&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Navigate to &lt;code&gt;site\wwwroot\&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Create &lt;code&gt;.well-known&lt;/code&gt; folder, and then inside it &lt;code&gt;acme-challenge&lt;/code&gt; folder. Inside it create &lt;code&gt;web.config&lt;/code&gt; file with following content to enable extensionless file support.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;configuration&amp;gt;
    &amp;lt;system.webServer&amp;gt;
        &amp;lt;staticContent&amp;gt;
            &amp;lt;mimeMap fileExtension="*" mimeType="text/json" /&amp;gt;
        &amp;lt;/staticContent&amp;gt;
        &amp;lt;handlers&amp;gt;
            &amp;lt;clear /&amp;gt;
            &amp;lt;add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" /&amp;gt;
        &amp;lt;/handlers&amp;gt;
    &amp;lt;/system.webServer&amp;gt;
&amp;lt;/configuration&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You can create some dummy &lt;code&gt;test&lt;/code&gt; file to validate that the new configuration works as expected and the file content is displayed when you navigate to &lt;code&gt;http://&amp;lt;YOUR_DOMAIN&amp;gt;/.well-known/acme-challenge/test&lt;/code&gt;.&lt;/p&gt;

&lt;h1&gt;Install WSL2 on your machine&lt;/h1&gt;

&lt;p&gt;You need have run Windows 10, version 2004 that supports Hyper-V Virtualization as explained &lt;a href="https://docs.microsoft.com/en-us/windows/wsl/install-win10#update-to-wsl-2"&gt;here&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Enable Hyper-V&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Enable WSL&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You might see this message after running that command: WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel please follow the link and install the MSI from that page.&lt;/p&gt;

&lt;p&gt;Got to &lt;a href="https://aka.ms/wslstore"&gt;Microsoft Store&lt;/a&gt; and install Debian&lt;/p&gt;

&lt;h1&gt;Get Certbot&lt;/h1&gt;

&lt;p&gt;Install certbot (for other systems you may follow guides from &lt;a href="https://certbot.eff.org/docs/install.html"&gt;official docs&lt;/a&gt;)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo apt-get update
sudo apt-get install certbot
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Request new certificate&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo certbot certonly --email &amp;lt;your-email&amp;gt; -d &amp;lt;your-domain&amp;gt; --agree-tos --manual
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You will see (you might also see the question if you want to pass your email to some 3rd party - you can say &lt;code&gt;No&lt;/code&gt; to it)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for &amp;lt;your-domain&amp;gt;

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.

Are you OK with your IP being logged?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Say Y (you can't say &lt;code&gt;No&lt;/code&gt; here)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Create a file containing just this data:

_cZlHtcA4U80CB66f3TH78132ee5cYrJJi7Lk3FXJAU.Oww5lwNSS9WD5-PnXEyKJn3oGjcivmy6z-shKDZPsj4

And make it available on your web server at this URL:

http://&amp;lt;your-domain&amp;gt;/.well-known/acme-challenge/_cZlHtcA4U80CB66f3TH78132ee5cYrJJi7Lk3FXJAU

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Before you press &lt;code&gt;Enter&lt;/code&gt; you should create the required file using &lt;code&gt;Kudu&lt;/code&gt; and verify it is accessible under the link displayed in console.&lt;/p&gt;

&lt;p&gt;Once you pass the validation you will be able to see the files in the &lt;code&gt;/etc/letsencrypt/&lt;/code&gt; folder. Use following commands to open that folder in windows explorer&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cd /etc/letsencrypt/
explorer.exe .
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You can copy the files from that folder to some windows location.&lt;/p&gt;

&lt;p&gt;To generate the final &lt;code&gt;.pfx&lt;/code&gt; certificate for the website open the &lt;code&gt;\letsencrypt\live\&amp;lt;your-domain&amp;gt;&lt;/code&gt; and run&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;openssl pkcs12 -inkey privkey.pem -in cert.pem -export -out cert.pfx
&lt;/code&gt;&lt;/pre&gt;

&lt;h1&gt;List of commands to use when running from Azure vm (debian 10.4)&lt;/h1&gt;

&lt;p&gt;In local powershell&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ssh mateusz@52.230.31.107 # ssh &amp;lt;username&amp;gt;@&amp;lt;vm-ip&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In remote vm&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo apt-get install certbot
sudo certbot certonly --email &amp;lt;your-email&amp;gt; -d &amp;lt;your-domain&amp;gt; --agree-tos --manual
sudo apt-get install zip
zip -r letsencrypt.zip /etc/letsencrypt/
ls -l letsencrypt.zip # file is owned by root
sudo chown mateusz:mateusz letsencrypt.zip # chown &amp;lt;username&amp;gt;:&amp;lt;username&amp;gt; changes the ownership to you
ls -l letsencrypt.zip # file should be owned by you
exit
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In local powershell&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;scp mateusz@52.230.31.107:letsencrypt.zip . # scp &amp;lt;username&amp;gt;@&amp;lt;vm-ip&amp;gt;:&amp;lt;filepath&amp;gt; &amp;lt;local-filepath&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This should download the zip with all relevant file to your machine.&lt;/p&gt;

&lt;h1&gt;Links&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.thomasmaurer.ch/2019/06/install-wsl-2-on-windows-10/"&gt;Install WSL 2 on Windows 10&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.tenforums.com/tutorials/127857-access-wsl-linux-files-windows-10-a.html"&gt;How to Access Linux Files in a Windows Subsystem for Linux (WSL) Distro from Windows 10&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://letsencrypt.org/how-it-works/"&gt;Let’s Encrypt - How It Works&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://certbot.eff.org/docs/install.html"&gt;Get Certbot&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://community.letsencrypt.org/t/running-certbot-on-windows-phase-1/28348/5"&gt;Running Certbot on Windows - Phase 1&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://community.letsencrypt.org/t/azure-web-app-extension-less-url-issues/51980"&gt;Azure Web App - Extension-less URL issues&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/ebekker/ACMESharp/issues/15#issuecomment-329737087"&gt;Extensionless Static Files are Very Painful to Configure Under IIS&lt;/a&gt; - final fix&lt;br /&gt;
&lt;a href="https://medium.com/@lvinsf/enable-https-domain-server-with-azure-application-gateway-bfbf564416a4"&gt;Encrypt https domain server with Azure Application Gateway&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://intelequia.com/blog/post/1012/automating-azure-application-gateway-ssl-certificate-renewals-with-let-s-encrypt-and-azure-automation"&gt;Automating Azure Application Gateway SSL certificate renewals with Let’s Encrypt and Azure Automation&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://devconnected.com/how-to-zip-folder-on-linux/#:~:text=The%20easiest%20way%20to%20zip,compressed%20in%20your%20zip%20file."&gt;How To Zip Folder on Linux&lt;/a&gt; - pretty cool blog btw&lt;br /&gt;
&lt;a href="https://linuxize.com/post/linux-chown-command/"&gt;Chown Command in Linux (File Ownership)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://knowledge.digicert.com/solution/SO6674.html"&gt;DigiCert - How to convert .pfx file to .pem format including private key&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/fszlin/certes/blob/master/docs/CLI.md"&gt;Free certificates using Certes CLI&lt;/a&gt; - another cli client that can be used to manage the acme account based on .net. Thanks to &lt;a href="https://github.com/AdrianJSClark"&gt;Adrian Clark&lt;/a&gt; for recommending that one.&lt;br /&gt;
&lt;a href="https://github.com/fszlin/certes"&gt;GitHub - Certes&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/06/creating-csr-with-open-ssl/</id><title type="text">Creating CSR with openssl</title><summary type="html">&lt;p&gt;Consolidated information from DigiCert articles about requesting new SSL certificate using OpenSSL command line&lt;/p&gt;

</summary><published>2020-06-09T00:00:00Z</published><updated>2020-06-09T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/06/creating-csr-with-open-ssl/" /><content type="html">&lt;p&gt;Consolidated information from DigiCert articles about requesting new SSL certificate using OpenSSL command line&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;h1&gt;Getting private Key&lt;/h1&gt;

&lt;h2&gt;From existing certificate - How to convert .pfx file to .pem format including private key&lt;/h2&gt;

&lt;p&gt;Solution
OpenSSL can be used to convert pfx files to pem files that includes the private key. Some Servers require this format.&lt;/p&gt;

&lt;p&gt;To convert use the command below:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;openssl pkcs12 -in certificate.pfx -out certificte.pem
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Generating new key - Generating Your Private Key&lt;/h2&gt;

&lt;p&gt;After deciding on a key algorithm, key size, and whether to use a passphrase, you are ready to generate your private key.&lt;br /&gt;
Use the following command to generate your private key using the RSA algorithm:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;openssl genrsa -out yourdomain.pem 2048
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This command generates a private key in your current directory named yourdomain.key (-out yourdomain.key) using the RSA algorithm (genrsa) with a key length of 2048 bits (2048). The generated key is created using the OpenSSL format called PEM.&lt;br /&gt;
Use the following command to view the raw, encoded contents (PEM format) of the private key:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cat yourdomain.pem
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Even though the contents of the file might look like a random chunk of text, it actually contains important information about the key.&lt;br /&gt;
Use the following command to decode the private key and view its contents:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;openssl rsa -text -in yourdomain.pem -noout
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The -noout switch omits the output of the encoded version of the private key.&lt;/p&gt;

&lt;h1&gt;Extracting Your Public Key&lt;/h1&gt;

&lt;p&gt;The private key file contains both the private key and the public key. You can extract your public key from your private key file if needed.&lt;br /&gt;
Use the following command to extract your public key:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;openssl rsa -in yourdomain.pem -pubout -out yourdomain_public.pem
&lt;/code&gt;&lt;/pre&gt;

&lt;h1&gt;Creating Your CSR&lt;/h1&gt;

&lt;p&gt;After generating your private key, you are ready to create your CSR. The CSR is created using the PEM format and contains the public key portion of the private key as well as information about you (or your company).&lt;br /&gt;
Use the following command to create a CSR using your newly generated private key:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;openssl req -new -key yourdomain.pem -out yourdomain.csr
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;After entering the command, you will be asked series of questions. Your answers to these questions will be embedded in the CSR. Answer the questions as described below:&lt;/p&gt;

&lt;p&gt;| | |
|---|---|
| Country Name (2 letter code) | The two-letter country code where your company is legally located. |
| State or Province Name (full name) | The state/province where your company is legally located. |
| Locality Name (e.g., city) | The city where your company is legally located. |
| Organization Name (e.g., company) | Your company's legally registered name (e.g., YourCompany, Inc.). |
| Organizational Unit Name (e.g., section) | The name of your department within the organization. (You can leave this option blank; simply press Enter.) |
| Common Name (e.g., server FQDN) | The fully-qualified domain name (FQDN) (e.g., www.example.com). |
| Email Address | Your email address. (You can leave this option blank; simply press Enter.) |
| A challenge password | Leave this option blank (simply press Enter). |
| An optional company name | Leave this option blank (simply press Enter). |&lt;/p&gt;

&lt;p&gt;Some of the above CSR questions have default values that will be used if you leave the answer blank and press Enter. These default values are pulled from the OpenSSL configuration file located in the OPENSSLDIR (see Checking Your OpenSSL Version). If you want to leave a question blank without using the default value, type a "." (period) and press Enter.&lt;/p&gt;

&lt;h1&gt;Using the -subj Switch&lt;/h1&gt;

&lt;p&gt;Another option when creating a CSR is to provide all the necessary information within the command itself by using the -subj switch.&lt;br /&gt;
Use the following command to disable question prompts when generating a CSR:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;openssl req -new -key yourdomain.key -out yourdomain.csr -subj "/C=US/ST=Utah/L=Lehi/O=Your Company, Inc./OU=IT/CN=yourdomain.com"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This command uses your private key file (-key yourdomain.key) to create a new CSR (-out yourdomain.csr) and disables question prompts by providing the CSR information (-subj).&lt;/p&gt;

&lt;h1&gt;Creating Your CSR with One Command&lt;/h1&gt;

&lt;p&gt;Instead of generating a private key and then creating a CSR in two separate steps, you can actually perform both tasks at once.&lt;br /&gt;
Use the following command to create both the private key and CSR:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;openssl req -new \
-newkey rsa:2048 -nodes -keyout yourdomain.key \
-out yourdomain.csr \
-subj "/C=US/ST=Utah/L=Lehi/O=Your Company, Inc./OU=IT/CN=yourdomain.com"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This command generates a new private key (-newkey) using the RSA algorithm with a 2048-bit key length (rsa:2048) without using a passphrase (-nodes) and then creates the key file with a name of yourdomain.key (-keyout yourdomain.key).&lt;/p&gt;

&lt;p&gt;The command then generates the CSR with a filename of yourdomain.csr (-out yourdomain.csr) and the information for the CSR is supplied (-subj).&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Note: While it is possible to add a subject alternative name (SAN) to a CSR using OpenSSL, the process is a bit complicated and involved. If you do need to add a SAN to your certificate, this can easily be done by adding them to the order form when purchasing your DigiCert certificate.&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="https://support.citrix.com/article/CTX227983"&gt;Citrix - How to Create a CSR and Key File for a SAN Certificate with Multiple Subject Alternate Names&lt;/a&gt;&lt;/p&gt;
  
  &lt;p&gt;&lt;a href="https://www.endpoint.com/blog/2014/10/30/openssl-csr-with-alternative-names-one"&gt;OpenSSL CSR with Alternative Names one-line&lt;/a&gt;&lt;/p&gt;
  
  &lt;p&gt;in short create separate file &lt;code&gt;csr_details.txt&lt;/code&gt; with configuration details&lt;/p&gt;
&lt;/blockquote&gt;

&lt;pre&gt;&lt;code&gt;[req]
default_bits = 2048
prompt = no
default_md = sha1
req_extensions = req_ext
distinguished_name = dn

[ dn ]
C=US
ST=New York
L=Rochester
O=End Point
OU=Testing Domain
CN = www.your-new-domain.com

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = your-new-domain.com
DNS.2 = www.your-new-domain.com
&lt;/code&gt;&lt;/pre&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;code&gt;default_bits&lt;/code&gt; and &lt;code&gt;default_md&lt;/code&gt; can be ommited if provided from command line. the &lt;code&gt;default_bits&lt;/code&gt; can be ommited when creating CSR using existing certificate&lt;br /&gt;
  Cisco recommends adding the&lt;/p&gt;
&lt;/blockquote&gt;

&lt;pre&gt;&lt;code&gt;keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
&lt;/code&gt;&lt;/pre&gt;

&lt;blockquote&gt;
  &lt;p&gt;to &lt;code&gt;[ req_ext ]&lt;/code&gt; section&lt;/p&gt;
&lt;/blockquote&gt;

&lt;pre&gt;&lt;code&gt;openssl req -new -key certificate.pem -out request.csr -config csr_details.txt
# when creating new key in the same command
openssl req -new -out request.csr -newkey rsa:2048 -nodes -sha1 -keyout certificate.pem -config csr_details.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;h1&gt;Verifying CSR Information&lt;/h1&gt;

&lt;p&gt;After creating your CSR using your private key, we recommend verifying that the information contained in the CSR is correct and that the file hasn't been modified or corrupted.&lt;br /&gt;
Use the following command to view the information in your CSR before submitting it to a CA (e.g., DigiCert):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;openssl req -text -in yourdomain.csr -noout -verify
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The -noout switch omits the output of the encoded version of the CSR. The -verify switch checks the signature of the file to make sure it hasn't been modified.&lt;/p&gt;

&lt;h1&gt;Convert P7B to PFX&lt;/h1&gt;

&lt;blockquote&gt;
  &lt;p&gt;Note: This requires 2 commands&lt;br /&gt;
  the p7b file should contain whole certificate chain (both site and CA certificates)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;STEP 1: Convert P7B to CER&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;STEP 2: Convert CER and Private Key to PFX&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;openssl pkcs12 -export -in certificatename.cer -inkey privateKey.pem -out certificatename.pfx
&lt;/code&gt;&lt;/pre&gt;

&lt;hr /&gt;

&lt;h1&gt;Summary&lt;/h1&gt;

&lt;pre&gt;&lt;code&gt;openssl pkcs12 -in .\oldCert.pfx -out .\oldCert.pem
openssl req -new -key oldCert.pem -out newCert.csr -config .\csr_details.txt
openssl req -in .\newCert.csr -noout -text

openssl pkcs7 -print_certs -in .\newCert.p7b -out newCert.cer
openssl pkcs12 -export -in newCert.cer -inkey .\oldCert.pem -out newCert.pfx
&lt;/code&gt;&lt;/pre&gt;

&lt;h1&gt;Links&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.digicert.com/csr-creation.htm"&gt;DigiCert - General CSR Creation Guidelines&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.digicert.com/kb/util/csr-creation-microsoft-servers-using-digicert-utility.htm"&gt;DigiCert - Creating a CSR for Microsoft Servers Using the DigiCert® Certificate Utility for Windows&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.digicert.com/kb/ssl-support/openssl-quick-reference-guide.htm"&gt;DigiCert - OpenSSL Quick Reference Guide&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://ssltools.digicert.com/checker/views/csrCheck.jsp"&gt;DigiCert - SSL Tools - Check your CSR&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://knowledge.digicert.com/solution/SO11972.html"&gt;DigiCert - How to decode a Certificate Signing Request (CSR) file using OpenSSL&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://knowledge.digicert.com/solution/SO6674.html"&gt;DigiCert - How to convert .pfx file to .pem format including private key&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://chocolatey.org/packages/openssl"&gt;Chocolatey OpenSSL&lt;/a&gt;  &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;choco install openssl
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="https://knowledge.digicert.com/solution/SO26449.html"&gt;DigiCert - How to convert a certificate into the appropriate format&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://support.delphix.com/Delphix_Virtualization_Engine/Sysadmin/Extracting_PEM_Certificates_from_a_.p7b_Bundle_File_(KBA1859)"&gt;Extracting PEM Certificates from a .p7b Bundle File&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/06/m3u8-stream-to-mp4-using-ffmpeg/</id><title type="text">m3u8 stream to mp4 using ffmpeg</title><summary type="html">&lt;p&gt;Repost of &lt;a href="https://gist.github.com/tzmartin/fb1f4a8e95ef5fb79596bd4719671b5d"&gt;GitHub Gist&lt;/a&gt;&lt;/p&gt;

</summary><published>2020-06-07T00:00:00Z</published><updated>2020-06-07T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/06/m3u8-stream-to-mp4-using-ffmpeg/" /><content type="html">&lt;p&gt;Repost of &lt;a href="https://gist.github.com/tzmartin/fb1f4a8e95ef5fb79596bd4719671b5d"&gt;GitHub Gist&lt;/a&gt;&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;pre&gt;&lt;code&gt;echo "Enter m3u8 link:";read link;echo "Enter output filename:";read filename;ffmpeg -i "$link" -bsf:a aac_adtstoasc -vcodec copy -c copy -crf 50 $filename.mp4
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Or in simplest form&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ffmpeg -i &amp;lt;url&amp;gt; -bsf:a aac_adtstoasc -vcodec copy -c copy -crf 50 &amp;lt;filename&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Example&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ffmpeg -i "http://host/folder/file.m3u8" -bsf:a aac_adtstoasc -vcodec copy -c copy -crf 50 file.mp4
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/06/joining-a-list-of-values-with-table-rows-in-sql/</id><title type="text">Joining a list of values with table rows in sql</title><summary type="html">&lt;p&gt;Repost of &lt;a href="https://stackoverflow.com/questions/23377098/joining-a-list-of-values-with-table-rows-in-sql"&gt;StackOverflow&lt;/a&gt; answer&lt;/p&gt;

</summary><published>2020-06-06T00:00:00Z</published><updated>2020-06-06T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/06/joining-a-list-of-values-with-table-rows-in-sql/" /><content type="html">&lt;p&gt;Repost of &lt;a href="https://stackoverflow.com/questions/23377098/joining-a-list-of-values-with-table-rows-in-sql"&gt;StackOverflow&lt;/a&gt; answer&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;In Microsoft SQL Server 2008 or later you can use &lt;a href="https://docs.microsoft.com/en-us/sql/t-sql/queries/table-value-constructor-transact-sql"&gt;Table Value Constructor&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;SELECT v.valueId, m.name 
FROM (VALUES (1), (2), (3), (4), (5)) v(valueId)
LEFT JOIN otherTable m ON m.id = v.valueId
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/drafts/2020/05/learning-how-to-invest/</id><title type="text">Learning how to invest</title><summary type="html" /><published>2020-05-13T00:00:00Z</published><updated>2020-05-13T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/drafts/2020/05/learning-how-to-invest/" /><content type="html">&lt;!--excerpt--&gt;

&lt;h1&gt;Apps&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.coinspot.com.au/"&gt;CoinSpot - Crypt currency trading. Mainly for AU&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.onthehouse.com.au/"&gt;OnTheHouse - Home for Property Research&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.spaceship.com.au/"&gt;Spaceship - simple way to invest in your future&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://monzo.com/"&gt;Monzo - Banking made easy&lt;/a&gt; - &lt;code&gt;Unchecked&lt;/code&gt;&lt;br /&gt;
&lt;a href="https://www.qapital.com/"&gt;Qapital - Discover true money happiness&lt;/a&gt; - &lt;code&gt;Unchecked&lt;/code&gt;&lt;br /&gt;
&lt;a href="https://www.coinbase.com/"&gt;CoinBase - Crypto currency trading. Mainly for US&lt;/a&gt; - &lt;code&gt;Unchecked&lt;/code&gt;  &lt;/p&gt;

&lt;h1&gt;Handy Links&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.coinspot.com.au/my/orders/open"&gt;Checking CoinSpot orders&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;Articles, Blogs and Books&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.inteligentnyinwestor.pl/"&gt;Book - Inteligentny Inwestor XXI wieku&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.investopedia.com/articles/investing/082914/basics-buying-and-investing-bitcoin.asp"&gt;How to Invest in Bitcoin&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;Tax&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.ato.gov.au/general/gen/tax-treatment-of-crypto-currencies-in-australia---specifically-bitcoin/"&gt;Tax treatment of cryptocurrencies&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.ato.gov.au/rates/individual-income-tax-rates/"&gt;Individual income tax rates&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/04/sql-server-snapshots/</id><title type="text">SQL Server Snapshots</title><summary type="html">&lt;p&gt;Summary of Paul Mcilreavy blog post &lt;a href="https://blog.mcilreavy.com/articles/2019-12/debugging-with-sql-server-snapshots"&gt;Keep your dev loop as short as possible with Sql Server Snapshots&lt;/a&gt;  &lt;/p&gt;

</summary><published>2020-04-28T00:00:00Z</published><updated>2020-04-28T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/04/sql-server-snapshots/" /><content type="html">&lt;p&gt;Summary of Paul Mcilreavy blog post &lt;a href="https://blog.mcilreavy.com/articles/2019-12/debugging-with-sql-server-snapshots"&gt;Keep your dev loop as short as possible with Sql Server Snapshots&lt;/a&gt;  &lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;h1&gt;Azure Data Studio Extension automating that process&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.com/ecirpnaes/DbSnapshotCreator"&gt;https://github.com/ecirpnaes/DbSnapshotCreator&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;To take snapshot&lt;/h1&gt;

&lt;pre&gt;&lt;code&gt;USE [Master];
GO
CREATE DATABASE [snapshot_name] ON
(
    NAME = 'database_logical_data_file_name',
    FILENAME = 'C:\Users\mateu\snapshot_name.ss'
)
AS SNAPSHOT OF [database_name];
GO
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The &lt;code&gt;database_data_file_name&lt;/code&gt; should match the logical file name of the &lt;code&gt;.mdf&lt;/code&gt; database file&lt;/p&gt;

&lt;h1&gt;To restore from snapshot&lt;/h1&gt;

&lt;pre&gt;&lt;code&gt;USE [Master];
GO
ALTER DATABASE [database_name] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
RESTORE DATABASE [database_name] FROM DATABASE_SNAPSHOT = 'snapshot_name';
ALTER DATABASE [database_name] SET MULTI_USER;
GO
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;There can only be one snapshot of the database present in the sql server. If multiple snapshots of the same database are found, the restore operation will fail with &lt;code&gt;Database cannot be reverted. Either the primary or the snapshot names are improperly specified, all other snapshots have not been dropped, or there are missing files.&lt;/code&gt; Fortunately, &lt;strong&gt;it is safe to delete older snapshot and afterwards restore from the newer one&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;More details in &lt;a href="https://stackoverflow.com/a/47349830"&gt;this stack overflow answer&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;ol&gt;
  &lt;li&gt;&lt;p&gt;You have multiple snapshots defined, try refreshing the snapshots folder in ssms or run &lt;code&gt;select * from sys.databases where source_database_id IS NOT NULL&lt;/code&gt; to see if you have more snapshots. Because snapshots are 'copy on write', you cannot restore if you have multiple snapshots for a single database.&lt;/p&gt;&lt;/li&gt;
  &lt;li&gt;&lt;p&gt;You are not specifying correctly the logical name of the snapshot. Run &lt;code&gt;select * from sys.databases where source_database_id IS NOT NULL&lt;/code&gt; to check the the logical name of the snapshot. Then rerun the restore using that name.&lt;/p&gt;&lt;/li&gt;
  &lt;li&gt;&lt;p&gt;Your snapshot file is not linked anymore with the snapshot (snapshot got somehow corrupted). The statement below queries the pages in the snapshot file. Run it and see if you have any errors. &lt;code&gt;select db_name(database_id) [&amp;lt;database name&amp;gt;], database_id, count(*) from sys.dm_os_buffer_descriptors where database_id= (select top 1 database_id from sys.databases where source_database_id IS NOT NULL) group by database_id&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
  &lt;/ol&gt;
&lt;/blockquote&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/04/teams-custom-background/</id><title type="text">Teams custom background</title><summary type="html">&lt;p&gt;Put desired images in &lt;code&gt;%appdata%\Microsoft\Teams\Backgrounds\Uploads&lt;/code&gt; folder&lt;/p&gt;

</summary><published>2020-04-18T00:00:00Z</published><updated>2020-04-18T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/04/teams-custom-background/" /><content type="html">&lt;p&gt;Put desired images in &lt;code&gt;%appdata%\Microsoft\Teams\Backgrounds\Uploads&lt;/code&gt; folder&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://wallpaperhub.app/wallpapers?tags=background"&gt;Chat Backgrounds&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://wallhaven.cc/"&gt;Wallpapers&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/04/today-i-read/</id><title type="text">Today I read</title><summary type="html">&lt;p&gt;Similar to &lt;a href="https://michael-wolfenden.github.io/"&gt;The Wolf Report 🐺&lt;/a&gt; but with different intent. It's the list of cool articles/websides I stumbled upon on a given day so I can easily find them.&lt;/p&gt;

&lt;p&gt;</summary><published>2020-04-10T00:00:00Z</published><updated>2020-04-10T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/04/today-i-read/" /><content type="html">&lt;p&gt;Similar to &lt;a href="https://michael-wolfenden.github.io/"&gt;The Wolf Report 🐺&lt;/a&gt; but with different intent. It's the list of cool articles/websides I stumbled upon on a given day so I can easily find them.&lt;/p&gt;

&lt;p&gt;&lt;!--excerpt--&gt;&lt;/p&gt;

&lt;h1&gt;2022-05-06&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://mattfrear.com/2020/06/17/conditionally-specify-a-property-in-an-arm-template/"&gt;Conditionally specify a property in an ARM template&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/54349118/restrict-access-to-static-website-hosted-on-azure-storage-to-intended-users"&gt;Restrict access to static website hosted on azure storage to intended users&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/azure/cdn/cdn-custom-ssl?tabs=option-1-default-enable-https-with-a-cdn-managed-certificate"&gt;Tutorial: Configure HTTPS on an Azure CDN custom domain&lt;/a&gt; - candidate for blog post&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/azure/cdn/cdn-standard-rules-engine"&gt;Set up the Standard rules engine for Azure CDN&lt;/a&gt; - candidate for blog post&lt;br /&gt;
&lt;a href="https://fidoalliance.org/"&gt;FIDO Alliance - Open Authentication Standards More Secure than Passwords&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=shd101wyy.markdown-preview-enhanced"&gt;Markdown Preview Enhanced&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.bcti.com/2017/03/06/outlook-meeting-invitations-deleted-accepted/"&gt;Outlook Meeting Invitations Deleted After Accepted… WHY?!?!&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-05-05&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.atlassian.com/engineering/post-incident-review-april-2022-outage"&gt;Post-Incident Review on the Atlassian April 2022 outage&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/Taritsyn/JavaScriptEngineSwitcher"&gt;GitHub &gt; JavaScript Engine Switcher&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.securecodewarrior.com/"&gt;Secure Code Warrior&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/geekculture/run-docker-in-windows-10-11-wsl-without-docker-desktop-a2a7eb90556d"&gt;Run Docker in WSL (Windows 10/11) without Docker Desktop&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/qonto-way/how-we-build-microservices-locally-scaling-docker-compose-f7e026050d75"&gt;How we build microservices locally, scaling docker-compose&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.ultrabookreview.com/31385-the-throttlestop-guide/"&gt;The ThrottleStop Guide (2022): How to Lower Temperatures, Increase Performance and Boost Battery Life&lt;/a&gt; - good read on how to improve the reliability of the gaming laptops that have thermal throttling issues&lt;br /&gt;
&lt;a href="https://www.jaegertracing.io/"&gt;Jaeger: open source, end-to-end distributed tracing&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/sysinternals/downloads/procmon"&gt;Process Monitor&lt;/a&gt; - advanced monitoring tool for Windows that shows real-time file system, Registry and process/thread activity&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/azure/active-directory/develop/authentication-flows-app-scenarios"&gt;Microsoft identity platform authentication flows &amp;amp; app scenarios&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.thinkific.com/"&gt;Turn your expertise into revenue with online courses&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://gumroad.com/"&gt;Sell anything - Video lessons. Monthly subscriptions. Physical products. Whatever! Gumroad was created to help you experiment with all kinds of ideas and formats.&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.diigo.com/"&gt;Diigo - Better reading and research with annotation, highlighter, sticky notes, archiving, bookmarking &amp;amp; more.&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://readwise.io/"&gt;Readwise - Get the most out of what you read&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.docker.com/engine/scan"&gt;Vulnerability scanning for Docker local images&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.sqlshack.com/connecting-powershell-to-sql-server/"&gt;Connecting PowerShell to SQL Server&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/resource-naming"&gt;Microsoft best practices - Azure resources naming conventions&lt;/a&gt; - potential candidate for repost&lt;br /&gt;
&lt;a href="https://serverfault.com/questions/31554/how-to-check-progress-of-dbcc-shrinkfile"&gt;How to check progress of DBCC SHRINKFILE?&lt;/a&gt; - candidate for repost&lt;br /&gt;
&lt;a href="https://dataedo.com/kb/query/sql-server/list-all-indexes-in-the-database"&gt;List all indexes in SQL Server database&lt;/a&gt; - candidate for repost&lt;br /&gt;
&lt;a href="https://dba.stackexchange.com/questions/139191/sql-server-how-to-track-progress-of-create-index-command"&gt;SQL Server: How to track progress of CREATE INDEX command?&lt;/a&gt; - candidate for repost&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-sql-text-transact-sql"&gt;See the query being executed by sql session&lt;/a&gt; - candidate for repost&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/1362531/sql-server-invalid-object-name-but-tables-are-listed-in-ssms-tables-list"&gt;sql server invalid object name - but tables are listed in SSMS tables list&lt;/a&gt; - candidate for repost&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/35766634/milliseconds-value-are-not-getting-saved-in-sql-server-datetime-column"&gt;Milliseconds value are not getting saved in SQL Server DateTime column&lt;/a&gt; - candidate for repost&lt;br /&gt;
&lt;a href="https://ola.hallengren.com/"&gt;SQL Server Backup, Integrity Check, and Index and Statistics Maintenance&lt;/a&gt; - candidate for repost&lt;br /&gt;
&lt;a href="https://weblogs.asp.net/shahar/generating-sql-backup-script-for-tables-amp-data-from-any-net-application-using-smo"&gt;Generating SQL Backup Script for Tables &amp;amp; Data from any .NET Application using SMO&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.sqlshack.com/overview-of-the-shrink-tempdb-database-in-sql-server/"&gt;Overview of the Shrink TempDB database in SQL Server&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://dba.stackexchange.com/questions/45876/difference-between-full-backup-and-copy-only-full-backup"&gt;Difference between Full backup and Copy-only full backup&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://social.msdn.microsoft.com/Forums/sqlserver/en-US/41ba505e-9c6a-4bd5-9cf5-7dd4b2754958/init-and-not-init-on-a-copy-only-backup?forum=sqldatabaseengine"&gt;INIT and NOT INIT on a copy only backup&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://database.guide/how-to-fix-server-is-not-configured-for-data-access-in-sql-server/"&gt;How to Fix “Server is not configured for DATA ACCESS” in SQL Server&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.howtogeek.com/howto/15140/what-is-hiberfil.sys-and-how-do-i-delete-it/"&gt;What Is hiberfil.sys and How Do I Delete It?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.c-sharpcorner.com/article/understanding-thread-starvation-in-net-core-applications/"&gt;Understanding Thread Starvation in .NET Core Applications&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview"&gt;What are managed identities for Azure resources?&lt;/a&gt; - need to rewatch this&lt;br /&gt;
&lt;a href="https://blog.datalust.co/copying-signals-and-dashboards-using-seqcli-templates/"&gt;Copying signals and dashboards using seqcli templates&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/28701647/applicationhost-config-file-path-in-iis-7-7-5-8-8-5-and-iis-10/29303390"&gt;applicationhost.config file path in IIS 7, 7.5, 8, 8.5 and IIS 10?&lt;/a&gt; - candidate for repost&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/11050265/remove-large-pack-file-created-by-git/11277929"&gt;Remove large .pack file created by git&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://css-tricks.com/so-you-want-to-build-an-mention-autocomplete-feature/"&gt;CSS Tricks - So, You Want to Build an @mention Autocomplete Feature?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://css-tricks.com/a-utility-class-for-covering-elements/"&gt;CSS Tricks - A Utility Class for Covering Elements&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://dev.to/dailydevtips1/css-frosted-glass-credit-card-3lak"&gt;CSS - Frosted glass credit card&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://dev.to/djamaile/how-i-structure-my-react-ts-applications-2021-145j"&gt;How I structure my React /TS applications (2021)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://dev.to/code_jedi/5-github-projects-essential-for-every-aspiring-javascript-developer-161a"&gt;5 Github Projects Essential For Every Aspiring Javascript Developer&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.informit.com/promotions/object-design-142314"&gt;Book &gt; Object Design—Rebecca Wirfs-Brock and Alan McKean&lt;/a&gt; - revisit this&lt;br /&gt;
&lt;a href="https://www-cs-faculty.stanford.edu/~knuth/taocp.html"&gt;Book &gt; The Art of Computer Programming (TAOCP) by Donald E. Knuth&lt;/a&gt; - revisit this&lt;br /&gt;
&lt;a href="https://debuggingcss.com/"&gt;Book &gt; Debugging CSS&lt;/a&gt; - revisit this&lt;br /&gt;
&lt;a href="https://basecamp.com/shapeup"&gt;Book &gt; Shape Up: Stop Running in Circles and Ship Work that Matters&lt;/a&gt; - revisit this&lt;br /&gt;
&lt;a href="https://rmarkdown.rstudio.com/"&gt;Turn your analyses into high quality documents, reports, presentations and dashboards.&lt;/a&gt; - notebook format based on markdown - need to revisit this
&lt;a href="https://stackoverflow.com/questions/9294779/how-to-fix-inconsistent-line-endings-for-whole-vs-solution"&gt;How to fix inconsistent line endings for whole VS solution?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://haacked.com/archive/2007/08/19/why-duck-typing-matters-to-c-developers.aspx/"&gt;How Duck Typing Benefits C# Developers&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://anthonygiretti.com/2019/01/21/duck-casting-in-c-with-impromptu-interface-example-with-asp-net-core/"&gt;Duck casting in C# with Impromptu Interface, example with ASP.NET Core&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.davidguida.net/mediatr-how-to-use-decorators-to-add-retry-policies/"&gt;MediatR: how to use Decorators to add retry policies&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.ssw.com.au/rules/rules-to-better-email"&gt;Rules to Better Email&lt;/a&gt; - candidate for repost&lt;br /&gt;
&lt;a href="https://www.ssw.com.au/rules/"&gt;SSW Rules&lt;/a&gt; - candidate for repost&lt;br /&gt;
&lt;a href="https://castel.dev/post/lecture-notes-3/"&gt;How I manage my LaTeX lecture notes&lt;/a&gt; - candidate for blog post&lt;br /&gt;
&lt;a href="https://airspeeder.com/"&gt;AirSpeeder - Flying cars racing - Cool thing Telstra Purple supports&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://cloudinary.com/blog/time_for_next_gen_codecs_to_dethrone_jpeg"&gt;Time for Next-Gen Codecs to Dethrone JPEG&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/default-settings"&gt;Data Protection key management and lifetime in ASP.NET Core&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://andrewlock.net/an-introduction-to-the-data-protection-system-in-asp-net-core/amp/"&gt;An introduction to the Data Protection system in ASP.NET Core&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://sqlplayer.net/2019/06/deployment-of-azure-data-factory-with-azure-devops/"&gt;Deployment of Azure Data Factory with Azure DevOps&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.troyhunt.com/iot-unravelled-part-1-its-a-mess-but-then-theres-home-assistant/"&gt;Troy Hunt - IoT Unravelled Part 1: It's a Mess... But Then There's Home Assistant&lt;/a&gt; - revisit this&lt;br /&gt;
&lt;a href="https://www.tecmint.com/free-open-source-cloud-storage-tools-for-linux/amp/"&gt;16 Open Source Cloud Storage Software for Linux in 2020&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://nblumhardt.com/2020/10/bootstrap-logger/"&gt;Nicholas Blumhardt - Bootstrap logging with Serilog + ASP.NET Core&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://purple.telstra.com/blog/how-we-sped-up-an-aspnet-core-endpoint-from-20-seconds-down-to-4-seconds"&gt;Telstra Purple - How we sped up an ASP.NET Core endpoint from 20+ seconds down to 4 seconds&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/dotnet/aspnetcore/issues/19646"&gt;GitHub - Json serialization very slow with large files when using AddNewtonsoftJson&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://geeklearning.io/serialize-an-object-to-an-url-encoded-string-in-csharp/"&gt;Serialize an object to an url encoded string in C#&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/6848296/how-do-i-serialize-an-object-into-query-string-format"&gt;How do I serialize an object into query-string format?&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-12-13&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.hanselman.com/blog/how-to-make-a-pretty-prompt-in-windows-terminal-with-powerline-nerd-fonts-cascadia-code-wsl-and-ohmyposh"&gt;How to make a pretty prompt in Windows Terminal with Powerline, Nerd Fonts, Cascadia Code, WSL, and oh-my-posh&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://css-tricks.com/grid-auto-flow-css-grid-flex-direction-flexbox/"&gt;Wrap elements by column: 1-3-5-7, 2-4-6-8&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/MicrosoftDocs/azure-devops-docs/blob/master/docs/integrate/concepts/dotnet-client-libraries.md"&gt;.NET client libraries for AzureDevOps&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.nuget.org/packages/Microsoft.VisualStudio.Services.Client/"&gt;AzureDevOps api client package&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://haacked.com/archive/2004/06/29/current-directory-for-windows-service-is-not-what-you-expect.aspx/"&gt;Current Directory For Windows Service Is Not What You Expect&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/azure/devops/organizations/settings/set-iteration-paths-sprints?view=azure-devops&amp;amp;tabs=browser"&gt;AzureDevOps - Define iteration paths and configure team iterations&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://blog.angular-university.io/service-workers/"&gt;Service Workers - Practical Guided Introduction (several examples)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://briancaos.wordpress.com/2020/03/20/net-core-worker-services-with-application-insights-and-serilog/"&gt;.NET Core Worker Services with Application Insights and Serilog&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.robertcooper.me/how-yarn-lock-files-work-and-upgrading-dependencies"&gt;How Yarn Lock Files Work and Upgrading Dependencies&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://blog.miguelbernard.com/net-5-the-breaking-changes-you-need-to-know-about/"&gt;.NET 5 - The breaking changes you need to know about&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/@ryoldash/customize-webpack-config-of-react-app-created-with-create-react-app-7a78c7849edc"&gt;Customize webpack configuration of React App created with Create-react-app&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://dev.to/nicolasrannou/web-workers-in-create-react-app-cra-without-unmounting-4865"&gt;Web-workers in Create React App (CRA) without unmounting&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://gist.github.com/dsebastien/12c47fdb6517cfdab9473297f4472d22"&gt;Workbox 5 + Workbox build + TypeScript SW + Webpack build + Angular app&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/@ryoldash/customize-webpack-config-of-react-app-created-with-create-react-app-7a78c7849edc"&gt;Customize webpack configuration of React App created with Create-react-app&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://thesweetsetup.com/should-i-move-from-evernote-to-notion/"&gt;Should I Move from Evernote to Notion?&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-12-04&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://mermaid-js.github.io/mermaid/#/"&gt;Alternative to PlantUML&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;2020-11-01&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://vimeo.com/445554082/bbe9baee2d"&gt;Editing HTML Like A Boss In VS Code&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://motionarray.com/learn/davinci-resolve/"&gt;Learn DaVinci Resolve&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.dronelink.com/"&gt;Dronelink&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/62803350/error-sql71624-the-permission-connect-is-not-valid-for-the-target-object-gue"&gt;Error SQL71624: The permission 'CONNECT' is not valid for the target object 'guest' in Microsoft Azure SQL Database v12&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/microsoft/vscode/issues/32840"&gt;VS Code - Cannot display some emoji&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-10-05&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://boostnote.io/"&gt;https://boostnote.io/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://evernote.com/"&gt;https://evernote.com/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.notion.so/"&gt;https://www.notion.so/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://zapier.com/blog/best-note-taking-app-for-mac/"&gt;https://zapier.com/blog/best-note-taking-app-for-mac/&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-08-29&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://mobx.js.org/faq/faq.html"&gt;Can MobX be combined with RxJS?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://weblog.west-wind.com/posts/2018/Apr/12/Getting-the-NET-Core-Runtime-Version-in-a-Running-Application"&gt;Getting the .NET Core Runtime Version in a Running Application&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://support.logmeininc.com/lastpass/help/what-is-the-binary-component-in-lastpass-lp010136"&gt;What is the binary component in LastPass?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.jackfranklin.co.uk/blog/typescript-eslint/"&gt;Configuring ESLint on a TypeScript project&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/sql/t-sql/statements/set-transaction-isolation-level-transact-sql?view=sql-server-ver15"&gt;SET TRANSACTION ISOLATION LEVEL (Transact-SQL)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/snapshot-isolation-in-sql-server"&gt;Snapshot Isolation in SQL Server&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://borishristov.com/blog/surprises-and-a-bug-with-sql-azure-db/"&gt;Surprises and a Bug with SQL Azure DB&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/232333/how-long-should-set-read-committed-snapshot-on-take"&gt;How long should SET READ&lt;em&gt;COMMITTED&lt;/em&gt;SNAPSHOT ON take?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/ef/efcore-and-ef6/"&gt;Compare EF Core &amp;amp; EF6&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://support.microsoft.com/en-us/office/create-an-email-message-template-43ec7142-4dd0-4351-8727-bd0977b6b2d1"&gt;Outlook - Create an email message template&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://support.microsoft.com/en-us/office/send-an-email-message-based-on-a-template-56c645fc-1b25-4059-808b-55ee72b6bc2d"&gt;Outlook - Send an email message based on a template&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://cs193p.sites.stanford.edu/"&gt;Stanford University's course CS193p (Developing Applications for iOS using SwiftUI)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://online.stanford.edu/search-catalog"&gt;Stanford University's online courses&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://mvp.microsoft.com/en-US/pages/what-it-takes-to-be-an-mvp"&gt;What it takes to be an MVP&lt;/a&gt; - from Rahul&lt;br /&gt;
&lt;a href="http://mateuszligeza.com/medium.com/@yakko.majuri/a-step-by-step-guide-to-building-a-trading-bot-in-any-programming-language-d202ffe91569"&gt;A Step-By-Step Guide To Building a Trading Bot In Any Programming Language&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://1linelayouts.glitch.me/"&gt;1-Line Layouts&lt;/a&gt; - candidate for repost&lt;br /&gt;
&lt;a href="https://coinspot.zendesk.com/hc/en-us/articles/360001613216-CoinSpot-Cryptocurrency-Tax-Overview"&gt;CoinSpot Cryptocurrency Tax Overview&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://dev.to/david_whitney/azure-static-web-apps-are-awesome-4dn2"&gt;Azure Static Web Apps are Awesome&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://pavellaptev.github.io/web-dark-ages/"&gt;Dark Ages Of The Web&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://joom.team/en/a-brief-history-of-html-css-layouting"&gt;A brief history of HTML/CSS layouting&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.blog/2020-07-27-highlights-from-git-2-28/"&gt;Highlights from Git 2.28&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://openmetric.org/til/programming/git-pull-with-submodule/"&gt;Git Pull with Submodule&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.figma.com/"&gt;Figma - Where teams design together&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.papertrail.com/"&gt;Papertrail - Frustration-free log management&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.loggly.com/lp-loggly-general/"&gt;Loggly - Aggregate &amp;amp; analyze logs from any source&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://archive.org/details/stackexchange"&gt;Stack Exchange Data Dump&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.sqlshack.com/how-to-identify-and-resolve-sql-server-index-fragmentation/"&gt;How to identify and resolve SQL Server Index Fragmentation&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.sqlshack.com/sql-server-index-structure-and-concepts/"&gt;SQL Server index structure and concepts&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.sqlshack.com/tips-and-tricks-for-sql-server-database-maintenance-optimization/"&gt;Tips and tricks for SQL Server database maintenance optimization&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.fmsinc.com/MicrosoftAccess/SQLServerUpsizing/express/index.html"&gt;Microsoft SQL Server Express: Version Comparison Matrix and Free Downloads&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/4393372/is-it-possible-to-script-a-view-as-a-table-in-sql-server"&gt;Is it possible to script a view as a table in SQL Server?&lt;/a&gt; - candidate for repost&lt;br /&gt;
&lt;a href="https://www.andrew-best.com/posts/how-to-not-suck-at-mentoring/"&gt;How To Not Suck At Mentoring&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.youtube.com/watch?v=xRCOKKUSp9s"&gt;03 08 Eric Evans on the Entity Equality Methods&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.cloudsavvyit.com/5057/how-to-host-a-static-website-for-free-on-googles-firebase-hosting-platform/amp/"&gt;How to Host a Static Website for Free on Google’s Firebase Hosting Platform&lt;/a&gt;&lt;br /&gt;
&lt;a href=""&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-07-02&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://css-tricks.com/grid-for-layout-flexbox-for-components/"&gt;Grid for layout, flexbox for components&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://css-tricks.com/an-overview-of-scroll-technologies/"&gt;An Overview of Scroll Technologies&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://greensock.com/"&gt;Ultra high-performance, professional-grade animation for the modern web&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://greensock.com/scrolltrigger"&gt;Scroll-driven animations re-invented&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://css-tricks.com/when-sass-and-new-css-features-collide/"&gt;When Sass and New CSS Features Collide&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://cssfordesigners.com/articles/things-i-wish-id-known-about-css"&gt;Things I Wish I’d Known About CSS&lt;/a&gt; - good starting point to basic css&lt;br /&gt;
&lt;a href="https://www.infoq.com/news/2020/06/css-variables-design-systems/"&gt;Why We Don't Use a CSS Framework - Scott Tolinski, Reactive Conf&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://support.microsoft.com/en-au/help/4538642/windows-10-restore-lost-files"&gt;Recover lost files on Windows 10&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.microsoft.com/en-us/p/windows-file-recovery/9n26s50ln705#activetab=pivot:overviewtab"&gt;MS Store - Windows File Recovery&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://cezarypiatek.github.io/post/methods-with-special-signature/"&gt;The Magical Methods in C#&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://andrewlock.net/visualizing-asp-net-core-endpoints-using-graphvizonline-and-the-dot-language/amp/"&gt;Visualizing ASP.NET Core endpoints using GraphvizOnline and the DOT language&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://blogs.windows.com/windowsexperience/2020/07/01/announcing-windows-10-insider-preview-build-20161/"&gt;Announcing Windows 10 Insider Preview Build 20161&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-07-01&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://riptutorial.com/csharp/example/2616/anonymous-type-equality"&gt;C# Language Anonymous type equality&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.entityframeworktutorial.net/EntityFramework4.3/raw-sql-query-in-entity-framework.aspx"&gt;Execute Raw SQL Queries in Entity Framework 6&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/4555935/assign-null-to-a-sqlparameter"&gt;Assign null to a SqlParameter&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/dotnet/standard/frameworks"&gt;Target frameworks in SDK-style projects&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version"&gt;C# language versioning&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/aspnet/core/web-api/?view=aspnetcore-3.1#attribute-routing-requirement"&gt;ASPNET Core 3.1 - Attribute routing requirement&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://blog.slaks.net/2013-06-11/readonly-vs-immutable/"&gt;Immutability, part 1: Read-only vs. Immutable&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-3.1#route-constraint-reference"&gt;ASPNET Core 3.1 - Route constraint reference&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/sql/t-sql/functions/rank-transact-sql?view=sql-server-ver15"&gt;RANK (Transact-SQL)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/sql/t-sql/functions/dense-rank-transact-sql?view=sql-server-ver15"&gt;DENSE_RANK (Transact-SQL)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/sql/t-sql/functions/eomonth-transact-sql?view=sql-server-ver15"&gt;EOMONTH (Transact-SQL)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://sqlperformance.com/2013/01/t-sql-queries/generate-a-set-1"&gt;Generate a set or sequence without loops – part 1&lt;/a&gt; - candidate for repost&lt;br /&gt;
&lt;a href="https://p2p.wrox.com/sql-server-2000/49896-sql-query-generate-months-year.html"&gt;Sql Query to generate months and year&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.red-gate.com/simple-talk/sql/learn-sql-server/sql-server-indexed-views-the-basics/"&gt;SQL Server Indexed Views: The Basics&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/sql/relational-databases/views/create-indexed-views?view=sql-server-ver15"&gt;Create Indexed Views&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://sqlhints.com/2016/04/03/how-to-check-if-a-trigger-exists-in-sql-server/"&gt;How to check if a Trigger exists in Sql Server&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://aws.amazon.com/premiumsupport/knowledge-center/elb-redirect-http-to-https-using-alb/"&gt;How can I redirect HTTP requests to HTTPS using an Application Load Balancer?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://sqlperformance.com/2013/03/t-sql-queries/the-problem-with-window-functions-and-views"&gt;The Problem with Window Functions and Views&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/4960137/table-valued-functiontvf-vs-view"&gt;Table-Valued Function(TVF) vs. View&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/cezarypiatek/MappingGenerator"&gt;GitHub &gt; cezary piatek &gt; Mapping Generator&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://cezarypiatek.github.io/post/why-i-dont-use-automapper/"&gt;The reasons behind why I don't use AutoMapper.&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://disqus.com/home/discussion/codingforfunandprofit/friends_dont_let_friends_use_automapper_andrew_harcourt_uglybuggerorg_31/"&gt;Friends don't let friends use AutoMapper | Andrew Harcourt (Disqus)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.andrewharcourt.com/articles/on-the-nature-of-events"&gt;The cat sat on the mat.&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackmechanics.com/"&gt;Stack Mechanics - .NET Software Architecture Workshops&lt;/a&gt; - Andrew Harcourt &amp;amp; others as mentors&lt;br /&gt;
&lt;a href="https://www.syncfusion.com/blogs/post/15-must-have-visual-studio-extensions-for-developers.aspx"&gt;15 Must-Have Visual Studio Extensions for Developers&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-06-18&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.thomasmaurer.ch/2019/06/install-wsl-2-on-windows-10/"&gt;Install WSL 2 on Windows 10&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://certbot.eff.org/docs/install.html"&gt;Get Certbot&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.tenforums.com/tutorials/127857-access-wsl-linux-files-windows-10-a.html"&gt;How to Access Linux Files in a Windows Subsystem for Linux (WSL) Distro from Windows 10&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://community.letsencrypt.org/t/azure-web-app-extension-less-url-issues/51980"&gt;Azure Web App - Extension-less URL issues&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/ebekker/ACMESharp/issues/15#issuecomment-329737087"&gt;Extensionless Static Files are Very Painful to Configure Under IIS&lt;/a&gt; - final fix&lt;br /&gt;
&lt;a href="https://medium.com/@lvinsf/enable-https-domain-server-with-azure-application-gateway-bfbf564416a4"&gt;Encrypt https domain server with Azure Application Gateway&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://intelequia.com/blog/post/1012/automating-azure-application-gateway-ssl-certificate-renewals-with-let-s-encrypt-and-azure-automation"&gt;Automating Azure Application Gateway SSL certificate renewals with Let’s Encrypt and Azure Automation&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/azure/application-gateway/"&gt;Azure Application Gateway documentation&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://devblogs.microsoft.com/scripting/powertip-use-powershell-to-create-new-file/"&gt;PowerTip: Use PowerShell to Create New File&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://devconnected.com/how-to-zip-folder-on-linux/#:~:text=The%20easiest%20way%20to%20zip,compressed%20in%20your%20zip%20file."&gt;How To Zip Folder on Linux&lt;/a&gt; - pretty cool blog btw&lt;br /&gt;
&lt;a href="https://devconnected.com/monitoring-linux-processes-using-prometheus-and-grafana/"&gt;Monitoring Linux Processes using Prometheus and Grafana&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://linuxize.com/post/linux-chown-command/"&gt;Chown Command in Linux (File Ownership)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://azure.microsoft.com/en-us/updates/secure-your-custom-domains-at-no-cost-with-app-service-managed-certificates-preview/"&gt;Secure your Custom Domains at no cost with App Service Managed Certificates (preview)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://community.letsencrypt.org/t/running-certbot-on-windows-phase-1/28348/5"&gt;Running Certbot on Windows - Phase 1&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://faceswap.dev/"&gt;Leading free and Open Source multi-platform Deepfakes software.&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://towardsdatascience.com/how-to-produce-a-deepfake-video-in-5-minutes-513984fd24b6"&gt;How to Produce a DeepFake Video in 5 Minutes&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://aliaksandrsiarohin.github.io/first-order-model-website/"&gt;First Order Motion Model for Image Animation&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/AliaksandrSiarohin/first-order-model"&gt;Source code for the paper First Order Motion Model for Image Animation&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://reflect.tech/"&gt;https://reflect.tech/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://doublicat.com/"&gt;https://doublicat.com/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://deepfakesweb.com/"&gt;https://deepfakesweb.com/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/iperov/DeepFaceLab"&gt;DeepFaceLab - the leading software for creating deepfakes&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-06-14&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://support.microsoft.com/en-au/help/4295591/credssp-encryption-oracle-remediation-error-when-to-rdp-to-azure-vm"&gt;"CredSSP encryption oracle remediation" error when you try to RDP to a Windows VM in Azure&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://bnek.github.io/code/2020/06/10/From-gulp-to-webpack.html"&gt;From Gulp to Webpack&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://blog.frankfu.com.au/2018/11/13/correcting-host-headers-with-azure-websites-when-using-it-behind-an-application-gateway-or-reverse-proxy/"&gt;Modifying host headers with Azure websites when using it behind an Application Gateway or reverse proxy via URL Rewrite Module&lt;/a&gt; - Candidate for repost&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/azure/storage/common/storage-ref-azcopy-copy"&gt;azcopy copy - downloading files from azure blob storage&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://andrewlock.net/series/upgrading-to-asp-net-core-3/"&gt;Series: Upgrading to ASP.NET Core 3.0&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-06-06&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://keivan.io/appget-what-chocolatey-wasnt/"&gt;AppGet, What Chocolatey wasn’t&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://keivan.io/the-day-appget-died/"&gt;The Day AppGet Died&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.theverge.com/platform/amp/2020/5/28/21272964/microsoft-winget-windows-package-manager-appget-copied"&gt;Microsoft copied its new Windows Package Manager from rival AppGet, claims developer&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://andrewlock.net/series/adding-feature-flags-to-an-asp-net-core-app/"&gt;Series: Adding feature flags to an ASP.NET Core app&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://blog.bitsrc.io/building-a-react-component-design-system-8b643bb8922b?gi=7d3169201e48"&gt;Building a React Design System&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/14446511/most-efficient-method-to-groupby-on-an-array-of-objects"&gt;JS - Most efficient method to groupby on an array of objects&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-06-04&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://yqnn.github.io/svg-path-editor/"&gt;Online SVG Path Editor&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://css-tricks.com/the-shapes-of-css/"&gt;The Shapes of CSS&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://css-tricks.com/tools-visualize-edit-svg-paths-kinda/"&gt;Tools to Visualize and Edit SVG Paths (Kinda!)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://css-tricks.com/working-with-shapes-in-web-design/"&gt;Working with Shapes in Web Design&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://bennettfeely.com/clippy/"&gt;Online CSS clip-path maker&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://css-tricks.com/almanac/properties/c/clip-path/"&gt;CSS Almanac: clip-path&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://css-tricks.com/clipping-masking-css/"&gt;Clipping and Masking in CSS&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://organicweb.com.au/internet/numbers-in-circles/"&gt;HTML numbers in Circles (the quick way)&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://jsfiddle.net/thirtydot/k8gspoyv/"&gt;JSFiddle - numbers in circles&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://wpsites.net/web-design/colored-numbered-circles-using-pure-css-html/"&gt;Colored Numbered Circles Using Pure CSS &amp;amp; HTML&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://codepen.io/nickelse/pen/YWOxQG"&gt;CodePen - Pure CSS Diamond Shape&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.extendoffice.com/documents/outlook/1453-outlook-import-export-signatures.html"&gt;How To Import And Export Signatures In Microsoft Outlook?&lt;/a&gt; - TLDR &lt;code&gt;%userprofile%\AppData\Roaming\Microsoft\Signatures&lt;/code&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/23377098/joining-a-list-of-values-with-table-rows-in-sql"&gt;Joining a list of values with table rows in SQL&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/sql/t-sql/queries/table-value-constructor-transact-sql"&gt;Table Value Constructor (Transact-SQL)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.datalust.co/discuss/598a2e4f560470000f86900f"&gt;Fix for Error: "Seq is unavailable. Failed to initialize storage: Primary index is corrupt. The database must be defragmented or the table deleted."&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-06-02&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/1483732/set-nocount-on-usage"&gt;SET NOCOUNT ON usage&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://daleburnett.com/2014/01/everything-ever-wanted-know-set-nocount/"&gt;Everything You Ever Wanted to Know About SET NOCOUNT&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://git-scm.com/docs/git-archive"&gt;git archive - Create an archive of files from a git repository&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.atlassian.com/git/tutorials/export-git-archive"&gt;Git Archive: How to export a git project&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-05-28&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://medium.muz.li/color-tools-for-designers-2019-6ebd77a94ab"&gt;Color Tools For Designers 2019&lt;/a&gt; - good candidate for repost&lt;br /&gt;
&lt;a href="https://htmlcolorcodes.com/color-picker/"&gt;COLOR PICKER&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/39372804/typescript-how-to-loop-through-enum-values-for-display-in-radio-buttons"&gt;Typescript : how to loop through enum values&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/microsoft/TypeScript/issues/24220"&gt;Quick fix for 'unions can't be used in index signatures, use a mapped object type instead'&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/ovrsea/checking-the-type-of-an-object-in-typescript-the-type-guards-24d98d9119b0"&gt;Checking the type of an object in Typescript: the type guards&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://getbootstrap.com/docs/4.4/utilities/clearfix/"&gt;Bootstrap - Clearfix&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.w3schools.com/howto/howto_css_clearfix.asp"&gt;W3C - Clearfix&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://mateuszligeza.com/edge://surf/"&gt;Edge Surf game&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://support.office.com/en-us/article/rehearse-your-slide-show-with-presenter-coach-cd7fc941-5c3b-498c-a225-83ef3f64f07b"&gt;Rehearse your slide show with Presenter Coach&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-05-27&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.w3.org/TR/wake-lock/"&gt;Wake Lock API - Candidate Recommentation&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://w3c.github.io/screen-wake-lock/"&gt;Screen Wake Lock API - W3C Editor's Draft&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/w3c/screen-wake-lock"&gt;GitHub &gt; W3C &gt; screen-wake-lock&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.w3.org/wiki/DAS/Implementations"&gt;Devices and Sensors Working Group Implementation and Testing Status&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://bugs.chromium.org/p/chromium/issues/detail?id=257511"&gt;Chromium - Issue 257511: WakeLock API - Screen Lock&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://chromium-review.googlesource.com/c/chromium/src/+/2090094"&gt;Chromium - [wakelock] Mark ScreenWakeLock feature as stable&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.infoq.com/news/2019/11/chrome-wakelock-api/"&gt;Chrome Updates Experimental Wake Lock API Support&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://wake-lock-demo.glitch.me/"&gt;Screen Wake Lock Demo&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://reillyeon.github.io/scraps/wakelock.html"&gt;Screen Wake Lock Demo 2&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/reillyeon/scraps/blob/master/wakelock.html"&gt;Screen Wake Lock Demo 2 - Source Code&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://obsproject.com/"&gt;Open Broadcaster Software&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://obsproject.com/wiki/OBS-Studio-Quickstart"&gt;OBS Studio Quickstart&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-05-24&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://ckan.org/"&gt;CKAN, the world’s leading Open Source data portal platform&lt;/a&gt; - government public data reporting&lt;br /&gt;
&lt;a href="https://www.gatesnotes.com/About-Bill-Gates/Summer-Books-2020"&gt;5 summer books and other things to do at home&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.computerworld.com/article/3124640/support-family-and-friends-with-windows-10-s-new-quick-assist-app.html"&gt;How to use Windows 10’s Quick Assist app for remote PC support&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://support.microsoft.com/en-au/help/4026516/windows-solve-pc-problems-remote-connection-quick-assist"&gt;Quick Assist - Solve PC problems over a remote connection&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://devblogs.microsoft.com/dotnet/announcing-net-5-preview-4-and-our-journey-to-one-net/"&gt;Announcing .NET 5 Preview 4 and our journey to one .NET&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/powerapps/maker/common-data-service/data-platform-intro"&gt;What is Common Data Service?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://try.dot.net/"&gt;.NET programs in browser&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/dotnet/maui"&gt;.NET MAUI is the .NET Multi-platform App UI&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/"&gt;Introducing .NET Multi-platform App UI&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/microsoft/PowerToys"&gt;PowerToys - Windows system utilities to maximize productivity&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/microsoft/winget-cli"&gt;Windows Package Manager CLI (aka winget)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://dependabot.com/"&gt;Automated dependency updates&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/features/codespaces/"&gt;Codespaces - Your instant dev environment&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://visualstudio.microsoft.com/services/visual-studio-codespaces/"&gt;Visual Studio Codespaces&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/windows/release-information/"&gt;Windows 10 release information&lt;/a&gt; - when you need to check the version/build of the windows 10 you are running&lt;br /&gt;
&lt;a href="https://lensxp.com/best-windows-hello-compatible-webcams/"&gt;Best Windows Hello Compatible Webcams for Windows 10 Within Budget&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.logitech.com/en-au/product/brio"&gt;Logitech BRIO ULTRA HD PRO WEBCAM&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://devblogs.microsoft.com/dotnet/introducing-yarp-preview-1/"&gt;Introducing YARP Preview 1&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/microsoft/reverse-proxy"&gt;YARP - toolkit for developing high-performance HTTP reverse proxy applications&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://blog.logrocket.com/introduction-to-treat/"&gt;Introduction to treat&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://seek-oss.github.io/treat/"&gt;treat - Themeable, statically extracted CSS‑in‑JS with near‑zero runtime&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-05-14&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=monokai.theme-monokai-pro-vscode"&gt;Monokai Pro for Visual Studio Code&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.w3schools.com/sql/sql_case.asp"&gt;SQL CASE Statement&lt;/a&gt; - &lt;code&gt;TODO: create own article about it&lt;/code&gt;&lt;br /&gt;
&lt;a href="https://www.databasejournal.com/features/mssql/converting-rows-to-columns-pivot-and-columns-to-rows-unpivot-in-sql-server.html"&gt;SQL PIVOT and UNPIVOT&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-05-13&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.com/ecirpnaes/DbSnapshotCreator"&gt;Create/Revert database snapshot extension for AzureDataStudio&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.kaels-kabbage.com/post/hugo-syntax-extension-revisited/"&gt;Hugo Syntax Extension: Revisited&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.mural.co/"&gt;MURAL - digital workspace for visual collaboration&lt;/a&gt; - coalborative draw.io&lt;br /&gt;
&lt;a href="https://answers.microsoft.com/en-us/windows/forum/all/task-manager-metrics-frozen-on-win10/bc952c14-f0a2-462e-b204-f121db1dfaef"&gt;Task Manager metrics frozen on Win10&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.scootersoftware.com/"&gt;Beyond Compare&lt;/a&gt; - the only tool that could handle large file (90MB json) comparison  &lt;/p&gt;

&lt;h1&gt;2020-06-09&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx"&gt;Working with SSL at Development Time is easier with IISExpress&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/779228/the-parameter-is-incorrect-error-using-netsh-http-add-sslcert"&gt;“The parameter is incorrect.” error using netsh http add sslcert&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;2020-05-08&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://blog.logrocket.com/javascript-payment-request-api/"&gt;Cashing in on the JavaScript Payment Request API&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.howtogeek.com/661325/should-you-use-hdmi-displayport-usb-c-or-thunderbolt-for-a-4k-moni/amp/"&gt;Should You Use HDMI, DisplayPort, or USB-C for a 4K Monitor?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://monzo.com/"&gt;Monzo - Banking made easy&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.qapital.com/"&gt;Qapital - Discover true money happiness&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.onthehouse.com.au/"&gt;Home for Property Research&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-05-07&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.com/mdevils/typescript-exercises"&gt;TypeScript exercises&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/swlh/are-you-using-svg-favicons-yet-a-guide-for-modern-browsers-836a6aace3df"&gt;Are you using SVG favicons yet? A guide for modern browsers.&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.diagram.codes/"&gt;Diagram.codes - Diagram generation tool&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.hanselman.com/blog/ItsTimeForYouToInstallWindowsTerminal.aspx"&gt;It's time for you to install Windows Terminal&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.hanselman.com/blog/WhatsTheDifferenceBetweenAConsoleATerminalAndAShell.aspx"&gt;What's the difference between a console, a terminal, and a shell?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://atomcorp.github.io/themes/"&gt;Windows Terminal Themes&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/joonro/ConEmu-Color-Themes"&gt;Color themes for ConEmu&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/microsoft/terminal"&gt;Windows Terminal&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-05-06&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://medium.com/@taithienbo/azure-ad-b2b-vs-azure-ad-b2c-679b29bb0130"&gt;Azure AD B2B vs Azure AD B2C&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/azure/active-directory-b2c/identity-provider-azure-ad-single-tenant-custom?tabs=applications"&gt;Set up sign-in with an Azure Active Directory account using custom policies in Azure Active Directory B2C&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://feedback.azure.com/forums/169401-azure-active-directory/suggestions/10558662-restrict-new-user-signups-in-a-azure-b2c-tennant-t"&gt;Restrict new user signups in a Azure B2C tennant to emails from specific domains.&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/azure/active-directory-b2c/identity-provider-azure-ad-single-tenant"&gt;Set up sign-in for a specific Azure Active Directory organization in Azure Active Directory B2C&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/answers/questions/511/how-do-i-delete-my-azure-ad-b2c-tenant.html"&gt;How do I delete my Azure AD B2C tenant?&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-05-05&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=MadsKristensen.WebCompiler"&gt;VisualStudio Extension - WebCompiler&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/madskristensen/WebCompiler/issues/156"&gt;WebCompiler - Autoprefixer for SASS&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/madskristensen/WebCompiler/issues/413"&gt;WebCompiler - Fails due to Browserslist: caniuse-lite is outdated&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/55271798/browserslist-caniuse-lite-is-outdated-please-run-next-command-npm-update-cani"&gt;Browserslist: caniuse-lite is outdated. Please run next command &lt;code&gt;npm update caniuse-lite browserslist&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=bencoleman.armview"&gt;VS Code Extension - ARM Template Viewer&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-05-04&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=mrmlnc.vscode-scss"&gt;VS Code - SCSS IntelliSense&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/38781089/font-family-monospace-monospace"&gt;"font-family: monospace, monospace"&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/clover-platform-blog/modular-scss-and-why-you-need-it-6bb2d8c40fd8"&gt;Modular SCSS and Why You Need It&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-05-03&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.rahulpnath.com/blog/youtube_setup_and_workflow/"&gt;Rahul Nath - My YouTube Setup and Workflow&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.hanselman.com/blog/MicrosoftBuild2020RegistrationIsNotOnlyOpenItsFREEItsLIVEItsVIRTUALAndItIsAllFORYOU.aspx"&gt;Microsoft Build 2020 registration is not only open, it's FREE, it's LIVE, it's VIRTUAL, and it is all FOR YOU&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.notion.so/"&gt;https://www.notion.so/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.youtube.com/watch?v=CAcmLCI0B6U"&gt;Rahul Nath - GETTING STARTED WITH CYPRESS.IO - UI End to End Testing&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-05-02&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://engineering.linkedin.com/blog/2020/continuous-integration"&gt;How LinkedIn handles merging code in high-velocity repositories&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-04-30&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/36628833/select-matching-element-rename-html-tag-in-visual-studio-code/44982436"&gt;Select matching element/rename HTML tag in Visual Studio Code
&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://arxiv.org/abs/2002.11523"&gt;Using Reinforcement Learning in the Algorithmic Trading Problem&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/15285635/how-to-use-replace-of-directive-definition"&gt;AngularJs - How to use &lt;code&gt;replace&lt;/code&gt; of directive definition?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/35290332/angular-component-no-template-replace-option"&gt;AngularJs Component: no template replace option?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/content"&gt;&lt;content&gt;: The Shadow DOM Content Placeholder element (obsolete)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.granneman.com/webdev/editors/visual-studio-code/setting-configuring"&gt;Setting Up &amp;amp; Configuring Visual Studio Code&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/ipatalas/ngComponentUtility"&gt;https://github.com/ipatalas/ngComponentUtility&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.youtube.com/watch?v=l2PjqAn_Iy4"&gt;Learn Authentication The Hard Way, with Andrew Best&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.youtube.com/watch?v=X6a9bjNutEw"&gt;NDC Sydney 2016 - Modern Authentication - Rob Moore&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://tools.ietf.org/html/draft-ietf-oauth-security-topics-15"&gt;OAuth 2.0 Security Best Current Practice&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-04-29&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://conf.reactjs.org/event.html?frank"&gt;Building The New Facebook With React and Relay&lt;/a&gt; - facebook implementation of css-in-js&lt;br /&gt;
&lt;a href="https://trello.com/c/3De5AhaD/1343-https-docsgooglecom-document-d-17guapb1fg3bn0dvgdqgrtndqo3fobl7nvb8vawekc"&gt;Dissection of COVIDSafe (Android)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://news.ycombinator.com/"&gt;Hacker News&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.smashingmagazine.com/2020/04/skeleton-screens-react/"&gt;Implementing Skeleton Screens In React&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-04-28&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://codepen.io/supah/pen/BjYLdW"&gt;CodePen - css svg spinner&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://blog.mcilreavy.com/articles/2019-12/debugging-with-sql-server-snapshots"&gt;Keep your dev loop as short as possible with Sql Server Snapshots&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/46053581/cannot-restore-sql-server-snapshot"&gt;Cannot restore SQL Server snapshot&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-04-27&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://iamturns.com/typescript-babel/"&gt;TypeScript With Babel: A Beautiful Marriage&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://karma-runner.github.io/4.0/config/preprocessors.html"&gt;Karma docs - Preprocessors&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/karma-runner/karma-chrome-launcher"&gt;GitHub - Karma Chrome Launcher&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/demerzel3/karma-sourcemap-loader"&gt;GitHub - Karma SourceMap Loader&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/webpack-contrib/karma-webpack"&gt;GitHub - Karma Webpack plugin&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/mlex/karma-spec-reporter"&gt;GitHub - Karma Spec Reporter&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/chalk/chalk"&gt;Github - Chalk - color console plugin&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/andrey-skl/ng-annotate-loader"&gt;Github - Webpack ng-annotate loader&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/16897623/how-can-i-get-a-list-of-passing-tests-from-karma-runner-suite"&gt;How can I get a list of passing tests from karma runner suite?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/13066532/how-to-uninstall-npm-modules-in-node-js"&gt;How to uninstall npm modules in node js?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://code.visualstudio.com/docs/languages/jsconfig"&gt;VS Code docs - jsconfig.json&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/38044010/make-vs-code-read-webpack-config-and-recognize-path-with-alias"&gt;Make VS code read webpack.config and recognize path with alias?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/@justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-74007ce4adc9"&gt;Solve Module Import Aliasing for Webpack, Jest, and VSCode&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-04-26&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.1&amp;amp;tabs=visual-studio"&gt;Migrate from ASP.NET Core 2.2 to 3.0&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.1&amp;amp;tabs=visual-studio#mvc-service-registration"&gt;Migrate from ASP.NET Core 2.2 to 3.0 - MVC Service Registration&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/aspnet/core/migration/30-to-31?view=aspnetcore-3.1&amp;amp;tabs=visual-studio"&gt;Migrate from ASP.NET Core 3.0 to 3.1&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/aspnet/core/migration/identity?view=aspnetcore-3.1"&gt;Migrate Authentication and Identity to ASP.NET Core&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://autofaccn.readthedocs.io/en/latest/integration/aspnetcore.html#asp-net-core-3-0-and-generic-hosting"&gt;Autofac - ASP.NET Core 3.0+ and Generic Hosting&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet"&gt;Entity Framework Core tools reference - .NET CLI&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;2020-04-23&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.com/google/libphonenumber"&gt;Google's common Java, C++ and JavaScript library for parsing, formatting, and validating international phone numbers&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-04-21&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://blog.mcilreavy.com/articles/2019-12/debugging-with-sql-server-snapshots"&gt;Sql Server Snapshots&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://drlongnecker.com/blog/2018/06/visual-studio-code-migrating-from-resharper/"&gt;Visual Studio Code - Migrating from ReSharper&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/microsoft/vscode-resharper-keybindings"&gt;Resharper 9 Key Bindings fo VS Code&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/toddams/RazorLight#includes-aka-partial-views"&gt;RazorLight Partial views&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/38247080/using-razor-outside-of-mvc-in-net-core"&gt;Using Razor outside of MVC in .NET Core&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://gist.github.com/cdroulers/9ed5b5b2e5c035a0e6912a88c7043f96"&gt;Simple replacement for RazorLight in .NET Core 2.0&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://iamrufio.com/blog/2017/09/rendering-emails-with-razorviewengine-in-net-core-2-0/"&gt;Rendering Emails with RazorViewEngine in .NET Core 2.0&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/aspnet/Razor/issues/1212"&gt;Integration tests with ASP.NET Core causes missing references from Razor files&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.codeproject.com/Articles/5260233/Building-String-Razor-Template-Engine-with-Bare-Ha"&gt;Building String Razor Template Engine with Bare Hands (.NET Core)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/adoconnection/RazorEngineCore"&gt;RazorEngineCore - ASP.NET Core 3.1.1 Razor Template Engine&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/aspnet/Razor/blob/a06c2b243f5e446a04d9439a87d62f6794c6c1ff/src/RazorPageGenerator/Program.cs"&gt;Example Razor Page Generator&lt;/a&gt; - taken from &lt;a href="https://github.com/aspnet/Razor/issues/2485"&gt;This issue discussion&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-04-20&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://medium.com/@frosty/angularjs-template-vs-templateurl-cdde055b7907"&gt;AngularJS: &lt;code&gt;template&lt;/code&gt; vs &lt;code&gt;templateUrl&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://css-tricks.com/front-end-challenges/"&gt;Front-End Challenges&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://dev.to/hichamelbsi/strapi-another-use-case-build-your-own-api-from-any-website-with-puppeteer-h92"&gt;Strapi, another use case: Build your own API from any website with Puppeteer&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-04-19&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://alligator.io/react/fancy-forms-reactstrap/"&gt;Fancy Forms in React with Reactstrap&lt;/a&gt;&lt;br /&gt;
→ &lt;a href="https://github.com/alligatorio/Fancy-Form-Example"&gt;Fancy Form Example&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://create-react-app.dev/docs/setting-up-your-editor"&gt;Create React App - Setting Up Your Editor&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://prettier.io/docs/en/ignore.html"&gt;Prettier - Ignore&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://eslint.org/docs/user-guide/configuring#eslintignore"&gt;ESLint - Ingore&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/axios/axios"&gt;Axios&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/11974947/everyauth-vs-passport-js"&gt;Everyauth vs Passport.js?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://mobx-react.js.org/recipes-inject"&gt;Mobx-React Store injectiong&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/mobxjs/mobx-react/issues/256"&gt;Mobx - [Question] How to get typesafe injection&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/mobxjs/mobx-react/issues/471"&gt;Mobx - Mobx-React does not work with React.CreateContext&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-04-13&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://octopus.com/blog/octopus-cloud-1.0-reflections"&gt;MVPs and $100k AWS Bills: Reflections on the launch of Octopus Cloud 1.0&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://octopus.com/blog/octopus-cloud-v2-why-kubernetes"&gt;Why we chose Kubernetes, Linux, and .NET Core for Octopus Cloud&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://octopus.com/blog/octopus-server-dotnet-core-lessons-learned"&gt;Lessons learned porting Octopus Server to .NET Core 3.1&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/@jan.seredynski/a-security-review-of-1-300-appstore-applications-1dfffbf1fc4d"&gt;A security review of 1,300 AppStore applications&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-04-11&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.atlassian.com/git/tutorials/git-submodule"&gt;Git submodules&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://javascript.info/"&gt;The Modern JavaScript Tutorial&lt;/a&gt;  &lt;/p&gt;

&lt;h1&gt;2020-04-10&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.blog/2020-04-09-from-48k-lines-of-code-to-10-the-story-of-githubs-javascript-sdk/"&gt;From 48k lines of code to 10—the story of GitHub’s JavaScript SDK&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://blog.bitsrc.io/tools-for-consistent-javascript-code-style-56a6e93d75d"&gt;Tools for Consistent JavaScript Code Style&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://bit.dev/"&gt;https://bit.dev/&lt;/a&gt; - place where you can build your own library of reusable components  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/drafts/2020/04/getting-head-around-frontend/</id><title type="text">Getting head around frontend</title><summary type="html">&lt;p&gt;Bunch of thoughts and links to help get head around frontend development and tools.&lt;/p&gt;

</summary><published>2020-04-05T00:00:00Z</published><updated>2020-04-05T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/drafts/2020/04/getting-head-around-frontend/" /><content type="html">&lt;p&gt;Bunch of thoughts and links to help get head around frontend development and tools.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;hr /&gt;

&lt;h1&gt;Rough build steps&lt;/h1&gt;

&lt;p&gt;download dependencies
find all files for processing
order all files
process the files in a way that they can be used in a browser (babel)
run linter
run image optimisation
consolidate into one file&lt;/p&gt;

&lt;p&gt;minify files + obfuscate files + generate source maps =&gt; uglifyjs&lt;/p&gt;

&lt;p&gt;autoperfix css styles
minify css files =&gt; clean-css&lt;/p&gt;

&lt;p&gt;minify html pages + potentially create cache for templates/partials?&lt;/p&gt;

&lt;p&gt;run the bundle analyser to check how the js libs are structured in output&lt;/p&gt;

&lt;p&gt;configure index.html SPA root creation&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/35062852/npm-vs-bower-vs-browserify-vs-gulp-vs-grunt-vs-webpack"&gt;NPM vs. Bower vs. Browserify vs. Gulp vs. Grunt vs. Webpack&lt;/a&gt; - good starting point to understand what each tool is trying to achieve&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/35961853/what-gulp-angular-filesort-really-does-for-gulp-inject"&gt;What gulp-angular-filesort really does for gulp-inject?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/46198102/angular-testing-techniques-jasmine-vs-karma-vs-protractor-in-angular-2"&gt;Angular testing techniques Jasmine vs karma vs protractor in Angular 2?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://applitools.com/blog/protractor-vs-selenium-which-is-easier"&gt;Protractor vs. Selenium: Which is easier for testing?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/@metalex9/replace-phantomjs-with-headless-chromium-for-javascript-unit-testing-in-karma-59812e6f8ce4"&gt;Replace PhantomJS with Headless Chromium for JavaScript Unit Testing in Karma&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/karma-runner/karma/blob/master/thesis.pdf"&gt;Master Thesis about unit testing web applications with Karma&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/26032124/karma-vs-testing-framework-jasmine-mocha-qunit"&gt;Karma vs testing framework Jasmine, Mocha, QUnit&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/@vinaypatilloyola/end-to-end-testing-for-angular-2-applications-protractor-90af5c4b1b21"&gt;End to End Testing For Angular-2 Applications - Protractor&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://raygun.com/blog/mocha-vs-jasmine-chai-sinon-cucumber/"&gt;Mocha vs Jasmine, Chai, Sinon &amp;amp; Cucumber in 2019&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/@santiagogarcadarosa/webpack-separate-app-vendor-and-polyfill-builds-4008e334e198"&gt;Webpack: Code Splitting (app, vendor and polyfill builds)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://thinkster.io/ng-annotate"&gt;ng-annotate explained&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/huston007/ng-annotate-loader"&gt;ng-annotate-loader&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://gist.github.com/quocnt/fc8b32fbcc956984547511b21d7282f4"&gt;Using ng-annotate loader with Webpack + Angular 1.x + ES6 classes + Babel&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://angular-tips.com/blog/2015/06/using-angular-1-dot-x-with-es6-and-webpack/"&gt;Using AngularJS with ES6 and Webpack&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/karma-runner/karma/issues/1625"&gt;Karma: "singleRun" option causing crash when test suite is empty&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://kangax.github.io/compat-table/es5/"&gt;ECMA Script compatibility table&lt;/a&gt; - probably should be added to links library post&lt;br /&gt;
&lt;a href="https://caniuse.com/"&gt;Browser support tables for modern web technologies&lt;/a&gt;probably should be added to links library post&lt;br /&gt;
&lt;a href="https://css-tricks.com/gulp-for-beginners/"&gt;Gulp for Beginners&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.npmjs.com/package/webpack-bundle-analyzer"&gt;Visualize size of webpack output files with an interactive zoomable treemap&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://developer.okta.com/blog/2018/11/15/node-express-typescript"&gt;Use TypeScript to Build a Node API with Express&lt;/a&gt; - potentially can help with created typescript typed mock apis based on express and json server &lt;code&gt;to be checked&lt;/code&gt;&lt;br /&gt;
&lt;a href="https://medium.com/@sheldonled/from-jshint-to-eslint-8a0a135fa2bf"&gt;From JSHint to ESLint&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://webpack.js.org/configuration/"&gt;Webpack Configuration&lt;/a&gt;  &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;npx webpack-cli init
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="https://createapp.dev/webpack"&gt;Frontend build config generator&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/jantimon/html-webpack-plugin#options"&gt;HTML Webpack Plugin Options&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.ibm.com/developerworks/library/wa-modularize-angular-apps-with-webpack-trs/index.html"&gt;Modularize Angular applications with webpack&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/webpack-contrib/extract-text-webpack-plugin/issues/97"&gt;Getting rid of webpack log spam&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/@adamrackis/vendor-and-code-splitting-in-webpack-2-6376358f1923"&gt;Vendor and code splitting in webpack 2&lt;/a&gt; - mainly used to configure bundle analyser&lt;br /&gt;
&lt;a href="https://webpack.js.org/loaders/html-loader/"&gt;webpack html-loader&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/groww-engineering/module-aliasing-in-webpack-f02fe1b91f94"&gt;Module aliasing in Webpack&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/webpack/webpack/issues/2049"&gt;Uncaught TypeError: angular.module is not a function&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/38990018/webpack-provideplugin-angular"&gt;webpack.ProvidePlugin angular&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366"&gt;webpack 4: Code Splitting, chunk graph and the splitChunks optimization&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://egghead.io/lessons/angularjs-angularjs-with-webpack-introduction"&gt;AngularJS with Webpack - Introduction&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/@sumeetsethi.asm/keeping-it-simple-with-ui-grids-and-es6-b0af1618fc37"&gt;Keeping it simple with UI-Grids and ES6&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://medium.com/@frosty/angularjs-template-vs-templateurl-cdde055b7907"&gt;AngularJS: &lt;code&gt;template&lt;/code&gt; vs &lt;code&gt;templateUrl&lt;/code&gt;&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/03/video-editing-resources/</id><title type="text">Video editing resources</title><summary type="html">&lt;p&gt;Bunch of video editing related resources&lt;/p&gt;

</summary><published>2020-03-28T00:00:00Z</published><updated>2020-03-28T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/03/video-editing-resources/" /><content type="html">&lt;p&gt;Bunch of video editing related resources&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://vimeo.com/108677299"&gt;https://vimeo.com/108677299&lt;/a&gt; - Color Grading GoPro Footage in Davinci Resolve&lt;br /&gt;
&lt;a href="https://groundcontrolcolor.com/collections/free-color-grading-luts/products/free-gopro-protune-to-rec-709-lut"&gt;https://groundcontrolcolor.com/collections/free-color-grading-luts/products/free-gopro-protune-to-rec-709-lut&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://havecamerawilltravel.com/gopro/gopro-video-lrv-thm-files/"&gt;https://havecamerawilltravel.com/gopro/gopro-video-lrv-thm-files/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://fixthephoto.com/luts-video"&gt;https://fixthephoto.com/luts-video&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/12026381/ffmpeg-converting-mov-files-to-mp4"&gt;https://stackoverflow.com/questions/12026381/ffmpeg-converting-mov-files-to-mp4&lt;/a&gt;  &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ffmpeg -i movie.mov -vcodec copy -acodec copy out.mp4
// Alternative which re-encodes with best quaility
ffmpeg -i input.mov -q:v 0 output.mp4
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="https://askubuntu.com/questions/84584/converting-mp4-to-mp3"&gt;Converting mp4 to mp3&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://trac.ffmpeg.org/wiki/Encode/MP3"&gt;FFmpeg MP3 Encoding Guide&lt;/a&gt;  &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ffmpeg -i input.wav -codec:a libmp3lame -b:a 320k output.mp3
// for variable bit rate 190kbit/s
ffmpeg -i input.wav -codec:a libmp3lame -q:a 2 output.mp3
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/5784661/how-do-you-convert-an-entire-directory-with-ffmpeg"&gt;https://stackoverflow.com/questions/5784661/how-do-you-convert-an-entire-directory-with-ffmpeg&lt;/a&gt;  &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ls *.avi|%{ ffmpeg -i $_ &amp;lt;ffmpeg options here&amp;gt; $_.name.replace($_.extension, ".mp4")}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="https://gist.github.com/tzmartin/fb1f4a8e95ef5fb79596bd4719671b5d?fbclid=IwAR1Uc1Sm95Z0slp21Zl-gW6YFFPEYbTsHwIa2JiuqF4NdhxVtBjGQYww30U"&gt;m3u8 stream to mp4 using ffmpeg (for videos streamed with JW Player)&lt;/a&gt;  &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ffmpeg -i "http://host/folder/file.m3u8" -bsf:a aac_adtstoasc -vcodec copy -c copy -crf 50 file.mp4
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/03/ef-core-projections-and-calculated-properties/</id><title type="text">EF Core projections and calculated properties</title><summary type="html">&lt;p&gt;How to simplify complex db queries and reuse domain logic in generated sql queries.&lt;/p&gt;

</summary><published>2020-03-27T00:00:00Z</published><updated>2020-03-27T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/03/ef-core-projections-and-calculated-properties/" /><content type="html">&lt;p&gt;How to simplify complex db queries and reuse domain logic in generated sql queries.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://daveaglick.com/posts/computed-properties-and-entity-framework"&gt;https://daveaglick.com/posts/computed-properties-and-entity-framework&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/hazzik/DelegateDecompiler"&gt;https://github.com/hazzik/DelegateDecompiler&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://benjii.me/2018/01/expression-projection-magic-entity-framework-core/"&gt;https://benjii.me/2018/01/expression-projection-magic-entity-framework-core/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://lostechies.com/jimmybogard/2014/05/07/projecting-computed-properties-with-linq-and-automapper/"&gt;https://lostechies.com/jimmybogard/2014/05/07/projecting-computed-properties-with-linq-and-automapper/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://jimmybogard.com/automapper-linq-support-deep-dive/"&gt;https://jimmybogard.com/automapper-linq-support-deep-dive/&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/03/setting-visual-studio-as-default-merge-tool/</id><title type="text">Setting visual studio as default merge tool</title><summary type="html">&lt;p&gt;Setting visual studio as default merge tool&lt;/p&gt;

</summary><published>2020-03-26T00:00:00Z</published><updated>2020-03-26T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/03/setting-visual-studio-as-default-merge-tool/" /><content type="html">&lt;p&gt;Setting visual studio as default merge tool&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;h1&gt;Option 1&lt;/h1&gt;

&lt;p&gt;&lt;img src="http://mateuszligeza.com/_cdn/20200327-vs-git-merge-tool.gif" alt="Team Explorer - Settings" /&gt;  &lt;/p&gt;

&lt;h1&gt;Option 2&lt;/h1&gt;

&lt;p&gt;Update user git configuration at &lt;code&gt;%userprofile%\.gitconfig&lt;/code&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[diff]
    tool = vsdiffmerge
[difftool]
    prompt = true
[difftool "vsdiffmerge"]
    cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\Common7\\IDE\\CommonExtensions\\Microsoft\\TeamFoundation\\Team Explorer\\vsdiffmerge.exe\" \"$LOCAL\" \"$REMOTE\" //t
    keepBackup = false
[merge]
    tool = vsdiffmerge
[mergetool]
    prompt = true
[mergetool "vsdiffmerge"]
    cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\Common7\\IDE\\CommonExtensions\\Microsoft\\TeamFoundation\\Team Explorer\\vsdiffmerge.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\" //m
    keepBackup = false
    trustExitCode = true
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;VS code also can be used for that - &lt;a href="https://www.meziantou.net/comparing-files-using-visual-studio-code.htm"&gt;https://www.meziantou.net/comparing-files-using-visual-studio-code.htm&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/drafts/2020/03/rules-for-creating-open-source-repository/</id><title type="text">Rules for creating open source repository</title><summary type="html">&lt;p&gt;Rules for creating open source repository&lt;/p&gt;

</summary><published>2020-03-21T00:00:00Z</published><updated>2020-03-21T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/drafts/2020/03/rules-for-creating-open-source-repository/" /><content type="html">&lt;p&gt;Rules for creating open source repository&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;Source control&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Create read me file&lt;/li&gt;
&lt;li&gt;[ ] Add git ignore&lt;/li&gt;
&lt;li&gt;[ ] Add editor config&lt;/li&gt;
&lt;li&gt;[ ] Add information about line endings&lt;/li&gt;
&lt;li&gt;[ ] Add information about expected encoding&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Deployment&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] update version number&lt;/li&gt;
&lt;li&gt;[ ] add varsion tag to source code&lt;/li&gt;
&lt;li&gt;[ ] create release page&lt;/li&gt;
&lt;/ul&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/03/home-office/</id><title type="text">Home office</title><summary type="html">&lt;p&gt;Bunch of things that can make working from home easier.&lt;/p&gt;

</summary><published>2020-03-16T00:00:00Z</published><updated>2020-03-16T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/03/home-office/" /><content type="html">&lt;p&gt;Bunch of things that can make working from home easier.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://www.ebay.com.au/itm/Artiss-Electric-Motorised-Adjustable-Standing-Desk-Frame-Only-Office-Laptop-Desk/383007703791"&gt;https://www.ebay.com.au/itm/Artiss-Electric-Motorised-Adjustable-Standing-Desk-Frame-Only-Office-Laptop-Desk/383007703791&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.artiss.com.au/office-study/#standing-desks"&gt;https://www.artiss.com.au/office-study/#standing-desks&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.bunnings.com.au/search/products?page=1&amp;amp;q=Laminated%20Panels%201200%20x%20600&amp;amp;sort=BoostOrder&amp;amp;pageSize=60"&gt;https://www.bunnings.com.au/search/products?page=1&amp;amp;q=Laminated%20Panels%201200%20x%20600&amp;amp;sort=BoostOrder&amp;amp;pageSize=60&lt;/a&gt; - Laminated Panels 1200 x 600 from Bunnings&lt;br /&gt;
&lt;a href="https://www.arkienvironments.com/product-page/leap-chair"&gt;https://www.arkienvironments.com/product-page/leap-chair&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.innerspace.net.au/products/SAYL-BY-HERMAN-MILLER-805-100.htm"&gt;https://www.innerspace.net.au/products/SAYL-BY-HERMAN-MILLER-805-100.htm&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.mattblatt.com.au/replica-aeron-style-ergonomic-chair"&gt;https://www.mattblatt.com.au/replica-aeron-style-ergonomic-chair&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://satechi.net/collections/stands-mounts"&gt;Satechi stands &amp;amp; mounts&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://lpfurniturecomponents.com/recliner-and-motion-furniture/push-on-the-arms/dura-recline"&gt;The Dura Recline™ from Leggett &amp;amp; Platt Furniture Components&lt;/a&gt; - armchair form the hospital  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/03/dotnet-applications-telemetry-and-diagnostics/</id><title type="text">.NET applications telemetry and diagnostics</title><summary type="html">&lt;p&gt;NDC video "&lt;a href="https://www.youtube.com/watch?v=p6CjlnwPhHQ"&gt;Application Diagnostics in .NET Core 3.1 - Damian Edwards &amp;amp; David Fowler&lt;/a&gt;" recommended by Paul.&lt;/p&gt;

</summary><published>2020-03-02T00:00:00Z</published><updated>2020-03-02T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/03/dotnet-applications-telemetry-and-diagnostics/" /><content type="html">&lt;p&gt;NDC video "&lt;a href="https://www.youtube.com/watch?v=p6CjlnwPhHQ"&gt;Application Diagnostics in .NET Core 3.1 - Damian Edwards &amp;amp; David Fowler&lt;/a&gt;" recommended by Paul.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://opentelemetry.io/"&gt;https://opentelemetry.io/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/open-telemetry/opentelemetry-dotnet"&gt;https://github.com/open-telemetry/opentelemetry-dotnet&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://zipkin.io/pages/quickstart"&gt;https://zipkin.io/pages/quickstart&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/openzipkin/zipkin"&gt;https://github.com/openzipkin/zipkin&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/03/ef-core-3.1-changes/</id><title type="text">EF Core 3.1 changes</title><summary type="html">&lt;p&gt;NDC video "&lt;a href="https://www.youtube.com/watch?v=zySHbwl5IeU"&gt;Getting the best out of Entity Framework Core - Jon P Smith&lt;/a&gt;" recommended by Paul.&lt;/p&gt;

</summary><published>2020-03-01T00:00:00Z</published><updated>2020-03-01T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/03/ef-core-3.1-changes/" /><content type="html">&lt;p&gt;NDC video "&lt;a href="https://www.youtube.com/watch?v=zySHbwl5IeU"&gt;Getting the best out of Entity Framework Core - Jon P Smith&lt;/a&gt;" recommended by Paul.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-3.0/breaking-changes"&gt;Breaking changes included in EF Core 3.0&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-3.0/"&gt;New features in Entity Framework Core 3.0&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.codemag.com/Article/1911062/Entity-Framework-Core-3.0-A-Foundation-for-the-Future"&gt;Entity Framework Core 3.0: A Foundation for the Future&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.thinktecture.com/en/entity-framework-core/improved-value-conversion-support-in-2-1/"&gt;Entity Framework Core - Improved Value Conversion Support&lt;/a&gt; - Technically it talks about 2.1 but it's still relevant in 3.1. Also the 3.1 value converters work much better than in 2.1. This article &lt;a href="https://www.davepaquette.com/archive/2019/03/26/using-noda-time-with-ef-core.aspx"&gt;Using Noda Time with Entity Framework Core&lt;/a&gt; talks about the value converters for NodaTime. They were evaluated in memory in ef core 2.1 and now are translated properly in ef core 3.1&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/ef/core/modeling/generated-properties?tabs=data-annotations"&gt;EF configuration for Generated Values&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.kaels-kabbage.com/post/migrating-to-dotnetcore3-with-efcore/"&gt;Migrating to dotnetcore 3.1 (mostly EFCore)&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/01/eliminate-magic-numbers-from-sql-queries/</id><title type="text">Eliminate magic numbers from SQL queries</title><summary type="html" /><published>2020-01-22T00:00:00Z</published><updated>2020-01-22T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/01/eliminate-magic-numbers-from-sql-queries/" /><content type="html">&lt;!--excerpt--&gt;

&lt;pre&gt;&lt;code&gt;WITH Constants AS ( SELECT Foo = 42) 
SELECT *
FROM Bar
CROSS JOIN Constants
where Bar.Baz = Constants.Foo
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2020/01/command-line-find-and-replace-script/</id><title type="text">Command line find and replace script</title><summary type="html">&lt;p&gt;Simple comman line script to replace &lt;code&gt;%LAUNCHER_PATH%&lt;/code&gt; with &lt;code&gt;dotnet&lt;/code&gt; and &lt;code&gt;%LAUNCHER_ARGS%&lt;/code&gt; with &lt;code&gt;.\MySolution.dll&lt;/code&gt; inside the default aspnet core 3.1 &lt;code&gt;web.config&lt;/code&gt; file &lt;/p&gt;

</summary><published>2020-01-20T00:00:00Z</published><updated>2020-01-20T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2020/01/command-line-find-and-replace-script/" /><content type="html">&lt;p&gt;Simple comman line script to replace &lt;code&gt;%LAUNCHER_PATH%&lt;/code&gt; with &lt;code&gt;dotnet&lt;/code&gt; and &lt;code&gt;%LAUNCHER_ARGS%&lt;/code&gt; with &lt;code&gt;.\MySolution.dll&lt;/code&gt; inside the default aspnet core 3.1 &lt;code&gt;web.config&lt;/code&gt; file &lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;Bash&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sed -i 's/%LAUNCHER_PATH%/dotnet/g;s/%LAUNCHER_ARGS%/.\\MySolution.dll/g' web.config
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Powershell&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(Get-Content .\web.config) -replace '%LAUNCHER_PATH%', 'dotnet' -replace '%LAUNCHER_ARGS%', '.\MySolution.dll' | Set-Content .\web.config
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2019/12/svg-pattern-fills/</id><title type="text">SVG pattern fills</title><summary type="html">&lt;p&gt;Bunch of resources related to SVG pattern fills&lt;/p&gt;

</summary><published>2019-12-12T00:00:00Z</published><updated>2019-12-12T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2019/12/svg-pattern-fills/" /><content type="html">&lt;p&gt;Bunch of resources related to SVG pattern fills&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;h3&gt;Sample patterns&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;M 0 0 L 2.5 10 M 2.5 10 L 5 0 M 5 0 L 7.5 10 M 7.5 10 L 10 0 

M 0 0 L 2.5 2.5 M 2.5 2.5 L 5 0 M 5 0 L 7.5 2.5 M 7.5 2.5 L 10 0 
M 0 2.5 L 2.5 5 M 2.5 5 L 5 2.5 M 5 2.5 L 7.5 5 M 7.5 5 L 10 2.5 
M 0 5 L 2.5 7.5 M 2.5 7.5 L 5 5 M 5 5 L 7.5 7.5 M 7.5 7.5 L 10 5 
M 0 7.5 L 2.5 10 M 2.5 10 L 5 7.5 M 5 7.5 L 7.5 10 M 7.5 10 L 10 7.5 

M 0 2.5 L 2.5 7.5 M 2.5 7.5 L 5 2.5 M 5 2.5 L 7.5 7.5 M 7.5 7.5 L 10 2.5 

M 0 2.5 L 5 7.5 M 5 7.5 L 10 2.5 
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Links&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://codepen.io/anthonydugois/pen/mewdyZ"&gt;https://codepen.io/anthonydugois/pen/mewdyZ&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://jsbin.com/leqeze/embed?html,output"&gt;https://jsbin.com/leqeze/embed?html,output&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://jsfiddle.net/highcharts/gqg618eb/"&gt;https://jsfiddle.net/highcharts/gqg618eb/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://jsfiddle.net/gh/get/jquery/1.7.2/highcharts/highcharts/tree/master/samples/highcharts/css/pattern/"&gt;https://jsfiddle.net/gh/get/jquery/1.7.2/highcharts/highcharts/tree/master/samples/highcharts/css/pattern/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/series/infographic/"&gt;https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/series/infographic/&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/series/pattern-fill-area/"&gt;http://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/series/pattern-fill-area/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://api.highcharts.com/class-reference/Highcharts.PatternOptionsObject#path"&gt;https://api.highcharts.com/class-reference/Highcharts.PatternOptionsObject#path&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://bocoup.com/blog/using-svg-patterns-as-fills"&gt;https://bocoup.com/blog/using-svg-patterns-as-fills&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://localhost:6969/Colors.html"&gt;http://localhost:6969/Colors.html&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://webdesign.tutsplus.com/tutorials/how-to-use-svg-patterns-as-backgrounds--cms-31507"&gt;https://webdesign.tutsplus.com/tutorials/how-to-use-svg-patterns-as-backgrounds--cms-31507&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.heropatterns.com/"&gt;https://www.heropatterns.com/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://css-tricks.com/tools-visualize-edit-svg-paths-kinda/"&gt;https://css-tricks.com/tools-visualize-edit-svg-paths-kinda/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.base64decode.org/"&gt;https://www.base64decode.org/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.sitepoint.com/6-incredible-svg-pattern-generators/"&gt;https://www.sitepoint.com/6-incredible-svg-pattern-generators/&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://iros.github.io/patternfills/sample_svg.html"&gt;http://iros.github.io/patternfills/sample_svg.html&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2019/10/color-blind-friendly-design/</id><title type="text">Color blind friendly design</title><summary type="html">&lt;p&gt;Bunch of resources related to color blind friendly design best practices&lt;/p&gt;

</summary><published>2019-10-30T00:00:00Z</published><updated>2019-10-30T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2019/10/color-blind-friendly-design/" /><content type="html">&lt;p&gt;Bunch of resources related to color blind friendly design best practices&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://chrome.google.com/webstore/detail/chromelens/idikgljglpfilbhaboonnpnnincjhjkd"&gt;ChromeLens Extension&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.w3.org/TR/WCAG21/"&gt;Full blown W3 recommendations&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.invisionapp.com/inside-design/color-accessibility-product-design/"&gt;A guide to color accessibility in product design&lt;/a&gt; - I should take copy of this article&lt;br /&gt;
&lt;a href="https://jfly.uni-koeln.de/color/#pallet"&gt;Recommended color pallet&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://venngage.com/blog/color-blind-friendly-palette/"&gt;Recommended color pallet 2&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://colorsafe.co/"&gt;Color contrast rating recommendations&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://colorable.jxnblk.com"&gt;color contrast rating check&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Sidenote
&lt;a href="https://observablehq.com/@d3/color-schemes"&gt;https://observablehq.com/@d3/color-schemes&lt;/a&gt; - standarized color palettes names  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2019/09/csharp-net-reunified-microsofts-plans-for-net-5/</id><title type="text">.NET Reunified - Microsoft’s Plans for .NET 5</title><summary type="html">&lt;p&gt;Repost of &lt;a href="https://docs.microsoft.com/en-us/archive/msdn-magazine/2019/july/csharp-net-reunified-microsoft%e2%80%99s-plans-for-net-5"&gt;this article&lt;/a&gt; By Mark Michaelis&lt;/p&gt;

</summary><published>2019-09-10T00:00:00Z</published><updated>2019-09-10T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2019/09/csharp-net-reunified-microsofts-plans-for-net-5/" /><content type="html">&lt;p&gt;Repost of &lt;a href="https://docs.microsoft.com/en-us/archive/msdn-magazine/2019/july/csharp-net-reunified-microsoft%e2%80%99s-plans-for-net-5"&gt;this article&lt;/a&gt; By Mark Michaelis&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;When Microsoft announced .NET 5 at Microsoft Build 2019 in May, it marked an important step forward for developers working across desktop, Web, mobile, cloud and device platforms. In fact, .NET 5 is that rare platform update that unifies divergent frameworks, reduces code complexity and significantly advances cross-platform reach.&lt;/p&gt;

&lt;p&gt;This is no small task. Microsoft is proposing to merge the source code streams of several key frameworks—.NET Framework, .NET Core and Xamarin/Mono. The effort will even unify threads that separated at inception at the turn of the century, and provide developers one target framework for their work.&lt;/p&gt;

&lt;p&gt;The source code flow concept in &lt;strong&gt;Figure 1&lt;/strong&gt; shows how the timeline for each framework syncs up, and ultimately merges into a single thread as .NET 5 in November 2020. (Note that .NET Framework has been shortened to .NET FW in the image.) When released, .NET 5 will eclipse .NET Framework 4.8, Mono 5.0, and .NET Core 3.0.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://mateuszligeza.com/_cdn/20190910-csharp-net-reunified-microsofts-plans-for-net-5_01.png" alt="Figure 1" /&gt;&lt;br /&gt;
&lt;strong&gt;Figure 1 Source Code Flow Concept from .NET, Mono, and Shared Source Initiative to .NET 5&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Admittedly, &lt;strong&gt;Figure 1&lt;/strong&gt; is more conceptual than reality, with source code forking (more likely just copying) rather than branching, and features (like Windows Presentation Foundation [WPF] or Windows Forms) migrating rather than merging. Still, the infographic provides a reasonably transparent view of the ancestral history of the .NET source code, showing its evolution from the three major branches all the way to .NET 5.&lt;/p&gt;

&lt;p&gt;The result of this work is a unified platform with the .NET 5 framework executing on all platforms (desktop, Web, cloud, mobile and so on). &lt;strong&gt;Figure 2&lt;/strong&gt; depicts this unified architecture.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://mateuszligeza.com/_cdn/20190910-csharp-net-reunified-microsofts-plans-for-net-5_02.png" alt="Figure 2" /&gt;&lt;br /&gt;
&lt;strong&gt;Figure 2 .NET 5 - a Unified Platform&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;Origin Story&lt;/h1&gt;

&lt;p&gt;It’s fascinating how the different .NET frameworks—such as Microsoft’s Shared Source Common Initiative (Rotor), SilverLight, Windows Phone, .NET Core, and .NET Framework (but not Mono)—were originally compiled from the same source code. In other words, all the source code was maintained in a single repository and shared by all .NET frameworks. In so doing, Microsoft was able to ensure that APIs that were common to different frameworks would come from the same source code and have the same signatures. The only differences were which APIs were shared. (Note the use of .NET “framework,” lowercase, referring to all .NET frameworks in general, vs .NET “Framework,” uppercase, referring to the Windows .NET Framework, such as .NET Framework 4.8.)&lt;/p&gt;

&lt;p&gt;To achieve a single source targeting different frameworks, various subsetting techniques, such as a multitude of #ifdefs, were used. Also of interest is how an orthogonal set of subsetting techniques (that is, different #ifdefs) were baked into the .NET source code to build Rotor’s cross-platform support, enabling rapid development of both Silverlight and (much later) .NET Core from the same code base.&lt;/p&gt;

&lt;p&gt;While the orthogonal set of subsetting techniques remains, the one that enables cross-platform compilation—the subsetting to produce the different frameworks—is being removed. (See, for example, the pull request at &lt;a href="http://bit.ly/2WdSzv2"&gt;bit.ly/2WdSzv2&lt;/a&gt; that removes several #ifdefs that are stale.) The reason it’s possible to remove them today is because within days after the .NET 1.1 release, the .NET Core and .NET Framework source code was forked (more like copied). This in fact explains why there are two separate .NET source code Web sites: .NET Framework at &lt;a href="http://referencesource.microsoft.com/"&gt;referencesource.microsoft.com&lt;/a&gt; and .NET Core at &lt;a href="http://source.dot.net/"&gt;source.dot.net&lt;/a&gt;. These are two separate code bases.&lt;/p&gt;

&lt;p&gt;The decision to fork rather than continue the use of subsetting reflects the tension between maintaining backward compatibility (a high priority for the .NET Framework) and innovation (the priority of .NET Core). There were simply too many cases where maintaining compatibility conflicted with correcting or improving the .NET APIs, such that the source code had to be separated if both goals were to be achieved. Using #ifdefs was no longer a functional way to separate out the frameworks when, in fact, the APIs were different and version incompatible.&lt;/p&gt;

&lt;p&gt;Over time, however, another conflict arose—that of allowing developers to create libraries that could successfully execute within both frameworks. To achieve this, an API standard was needed to assure developers that a framework would have a specific set of APIs identified by the standard. That way, if they leveraged only the APIs within the standard, their library would be cross-framework compatible (the exact same assembly could run on different frameworks—without even recompiling).&lt;/p&gt;

&lt;p&gt;With each new feature added to .NET (for example Span&lt;T&gt;), it became more and more difficult to maintain backward compatibility with older versions of the framework. More specifically, the challenge was to support concepts in new .NET Standard versions—which were really new .NET Core innovations—in the .NET Framework. Furthermore, though less significantly, each new version of the .NET Standard included a larger and larger set of APIs until it became a maintenance burden to preserve .NET Standard compatibility between .NET Framework and .NET Core.&lt;/p&gt;

&lt;h1&gt;Come Together&lt;/h1&gt;

&lt;p&gt;The two frameworks began to look more and more alike because of the standard. As the APIs became more consistent, the obvious question began to arise: Why not move the separate code bases back together? And, in fact, starting with .NET Core 3.0 preview, so much of the .NET Framework WPF and Windows API was cherry-picked and merged into the .NET Core 3.0 code base, that this is exactly what happened. The source code for .NET Core 3.0 became one and the same with the modern day (desktop, cloud, mobile and IoT) functionality in .NET Framework 4.8.&lt;/p&gt;

&lt;p&gt;At this point there’s still one major .NET framework that I haven’t covered: Mono/Xamarin. Although the source code for Rotor was publicly available, using it would’ve violated the license agreement. Instead, Mono began as a separate green field development effort with the vision to create a Linux-compatible version of .NET. The Mono framework continued to grow over time, until the company (Ximian) was acquired in 2003 by Novell and then shuttered eight years later following Novell’s sale to Attachmate. Ximian management quickly reformed in May 2011 as Xamarin. And less than two years later, Xamarin developed a cross-platform UI code base that ran on both Android and iOS, leveraging a now closed-source, cross-platform version of Mono under the covers.&lt;/p&gt;

&lt;p&gt;In 2016 Microsoft acquired Xamarin to bring all the .NET framework source code under the control of a single company. Shortly after, Mono and the Xamarin SDK would be released as open source.&lt;/p&gt;

&lt;p&gt;This brings us to where we are in the first half of 2019, with essentially two main code bases going forward: .NET Core 3.0 and Mono/Xamarain. (While Microsoft will support .NET Framework 4.8 on Windows for as long as anyone can forecast, .NET Core 3.0 and later .NET 5 will  eclipse it as the strategic platform for new applications going forward.) Alongside this is the .NET Standard and the unification of APIs into the soon-to-be-released .NET Standard 2.1.&lt;/p&gt;

&lt;p&gt;Again, the question arises, with APIs moving closer and closer, can we not merge .NET Core 3.0 with Mono? It’s an effort, in fact, that has already begun. Mono today is already one-third Mono source, one-third CoreFx, and one-third .NET Framework reference source. That set the stage for .NET 5 to be announced at Microsoft Build 2019.&lt;/p&gt;

&lt;h1&gt;The Advantages of .NET 5&lt;/h1&gt;

&lt;p&gt;This unified version of .NET 5 will support all .NET application types: Xamarin, ASP.NET, IoT and desktop. Furthermore, it will leverage a single CoreFX/Base Class Library (BCL), two separate runtimes and runtime code bases (because it’s really hard to single source two runtimes intended to be critically different), and a single tool chain (such as dotnet CLI). The result will be uniformity across behaviors, APIs and developer experiences. For example, rather than having three implementations of the System.* APIs, there will be a single set of libraries that run on each of the different platforms.&lt;/p&gt;

&lt;p&gt;There are a host of advantages with the unification of .NET. Unifying the framework, runtimes, and developer toolsets into a single code base will result in a reduction in the amount of duplicate code that developers (both Microsoft and the community) will need to maintain and expand. Also, as we’ve come to expect from Microsoft these days, all the .NET 5 source code will be open source.&lt;/p&gt;

&lt;p&gt;With the merger, many of the features exclusive to each individual framework will become available to all platforms. For example, csproj types for these platforms will be unified into the well-loved and simple .NET Core csproj file format. A .NET Framework project type, therefore, will be able to take advantage of the .NET Core csproj file format. While a conversion to .NET Core csproj file formats is necessary for Xamarin and .NET Framework (including WPF and Windows Forms) csproj files, the task is similar to the conversion from ASP.NET to ASP.NET Core. Fortunately, today it’s even easier to do thanks to tools like ConvertProjectToNETCore3 (see bit.ly/2W5Lk3D).&lt;/p&gt;

&lt;p&gt;Another area of significant difference is in the runtime behavior of Xamarin and .NET Core/.NET Framework. The former uses a static compilation model, with ahead-of-time (AOT) compilation that compiles source code down to the native source code of the platform. By contrast, .NET Core and .NET Framework use just-in-time (JIT) compilation. Fortunately, with .NET 5, both models will be supported, depending on the project type target.&lt;/p&gt;

&lt;p&gt;For example, you can choose to compile your .NET 5 project into a single executable that will use the JIT compiler (jitter) at runtime, or a native compiler to work on iOS or Android platforms. Most projects will leverage the jitter, but for iOS all the code is AOT. For client-side Blazor, the runtime is Web Assembly (WASM), and Microsoft intends to AOT compile a small amount of managed code (around 100kb to 300kb), while the rest will be interpreted. (AOT code is large, so the wire cost is quite a burden to pay.)&lt;/p&gt;

&lt;p&gt;In .NET Core 3.0 you can compile to a single executable, but that executable is actually a compressed version of all the files needed to execute at runtime. When you execute the file, it first expands itself out into a temporary directory and then executes the entry point of the application from the directory that contains all the files. By contrast, .NET 5 will create a true, single-executable file that can execute directly in place.&lt;/p&gt;

&lt;p&gt;Another remarkable feature of .NET 5 is interoperability with source code from Java and Objective-C (including Swift). This has been a feature of Xamarin since the early releases, but will extend to all .NET 5 projects. You’ll be able to include jar files in your csproj file, for example, and you’ll be able to call directly from your .NET code into Java or Objective-C code. (Unfortunately, support for Objective-C will likely come later than Java.) It should be noted that interoperability between .NET 5 and Java/Objective-C is only targeted at in-process communication. Distributed communication to other processes on the same machine or even processes on a different machine will likely require serialization into a REST- or RPC-based distributed invocation.&lt;/p&gt;

&lt;h1&gt;What’s Not in .NET 5&lt;/h1&gt;

&lt;p&gt;While there’s a significant set of APIs available in the .NET 5 framework, it doesn’t include everything that might have been developed over the last 20 or so years. It’s reasonable to expect that all the APIs identified in .NET Standard 2.1 will be supported, but some of the more “legacy” APIs, including Web Forms, Windows Communication Foundation (WCF) server and Windows Workflow, will not. These are destined to remain in .NET Framework only. If you wish to achieve the same functionality within .NET 5, consider porting these APIs as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ASP.NET Web Forms =&gt; ASP.NET Blazor&lt;/li&gt;
&lt;li&gt;WCF server and remoting =&gt; gRPC&lt;/li&gt;
&lt;li&gt;Windows Workflow (WF) =&gt; Core WF (&lt;a href="http://github.com/UiPath/corewf"&gt;github.com/UiPath/corewf&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The lack of WCF server support is no doubt disappointing to some. However, Microsoft recently decided to release the software under an MIT open source license, where its destiny is in control of the community (see &lt;a href="http://github.com/CoreWCF/CoreWCF"&gt;github.com/CoreWCF/CoreWCF&lt;/a&gt;). There’s still a tremendous amount of work to be done to release independently of the .NET Framework, but in the meantime, the client-side WCF APIs are available (see &lt;a href="http://github.com/dotnet/wcf"&gt;github.com/dotnet/wcf&lt;/a&gt;).&lt;/p&gt;

&lt;h1&gt;A Declaration of Intent&lt;/h1&gt;

&lt;p&gt;Even as Microsoft makes plans to unify its developer frameworks under .NET 5, the company has announced that it’s adopting a regular cadence for its unified .NET releases (see &lt;strong&gt;Figure 3&lt;/strong&gt;). Going forward, you can expect general availability versions of .NET to be released in Q4 of each year. Of these releases, every second version will be a Long Term Support (LTS) release, which Microsoft will support for a minimum of three years or one year after a subsequent LTS release, whichever is longer. In other words, you’ll always have at least three years to upgrade your application to the next LTS release. See &lt;a href="http://bit.ly/2Kfkkw0"&gt;bit.ly/2Kfkkw0&lt;/a&gt; for more information on the .NET Core support policy, and what can be reasonably expected to become the .NET 5 and beyond support policy.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://mateuszligeza.com/_cdn/20190910-csharp-net-reunified-microsofts-plans-for-net-5_03.png" alt="Figure 3" /&gt;&lt;br /&gt;
&lt;strong&gt;Figure 3 .NET Release Schedule&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At this point, .NET 5 is still just an announcement—a declaration of intent, if you like. There’s lots of work to be done. Even so, the announcement is remarkable. When .NET Core was first released, the goal was to provide a cross-platform .NET version that could highlight Azure (perhaps especially the Platform-as-a-Service [PaaS] portions of Azure and support for .NET on Linux and within Linux containers).&lt;/p&gt;

&lt;p&gt;In the original concept, the idea that all of .NET Framework could be ported to .NET Core wasn’t considered realistic. Around the time of the .NET Core 2.0 release, that began to change. Microsoft realized that it needed to define a framework standard for all .NET framework versions, to enable code running on one framework to be portable to another.&lt;/p&gt;

&lt;p&gt;This standard, of course, became known as the .NET Standard. Its purpose was to identify the API that a framework needed to support so that libraries targeting the standard could count on a specific set of APIs being available. As it turned out, defining the standard and then implementing it with Xamarin/Mono, .NET Core, and .NET Framework became a key component that made the .NET 5 unification strategy possible.&lt;/p&gt;

&lt;p&gt;For example, once each framework has implemented code that supports the .NET Standard set of APIs, it seems logical to work toward combining the separate code bases into one (a refactoring of sorts). And, where behavior isn’t the same (JIT versus AOT compilation, for example), why not merge the code so that all platforms support both approaches and features? The effort isn’t trivial, but the result is a huge step forward in reducing complexity and maintenance, while at the same time unifying the features to all platforms.&lt;/p&gt;

&lt;p&gt;Perhaps surprisingly, the very .NET Standard that made unification possible will likely make .NET Standard irrelevant. In fact, with the emergence of .NET 5, it’s doubtful there will be another version of .NET Standard—.NET 5 and each version after that will be the standard.&lt;/p&gt;

&lt;h1&gt;Wrapping Up&lt;/h1&gt;

&lt;p&gt;They say timing is everything, and that’s true of .NET 5. A virtually comprehensive re-write of the .NET Framework wasn’t even conceivable when .NET Core development started. At the time, Microsoft was responding to demand to significantly enhance the Azure hosting experience on Linux, in containers, and on PaaS. As such, the company was laser-focused on getting something out to meet the demands of customers and the Azure product team.&lt;/p&gt;

&lt;p&gt;With .NET Core 2.0 the mission expanded to matching the functionality found in the .NET Framework. Again, the team was laser-focused on releasing something viable, rather than taking on too much. But things began to change with .NET Core 3.0 and the implementation of .NET Standard 2.1. The idea of having to go in and make changes to three distinct frameworks when a new feature or bug came up was an irritation and an expense. And, like any good developer, the idea soon emerged to refactor the code as much as possible into a single code base.&lt;/p&gt;

&lt;p&gt;And so, .NET 5 was born. And along with it was born the idea of unifying all the features of each framework—whether it was simple csproj formats, adopting open source development models, enabling interoperability with Java and Objective-C (including Swift), or supporting JIT and AOT compilation. Just like that, the idea of a single, unified framework became an obvious next step, and one I expect everyone both inside and outside of Microsoft will celebrate.&lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2019/06/angularjs-filter-to-make-urls-in-text-clickable/</id><title type="text">AngularJS filter to make urls in text clickable</title><summary type="html">&lt;p&gt;Repost from &lt;a href="http://oskarhane.com/angular-js-filter-to-make-urls-in-text-clickable/"&gt;this article&lt;/a&gt;&lt;/p&gt;

</summary><published>2019-06-28T00:00:00Z</published><updated>2019-06-28T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2019/06/angularjs-filter-to-make-urls-in-text-clickable/" /><content type="html">&lt;p&gt;Repost from &lt;a href="http://oskarhane.com/angular-js-filter-to-make-urls-in-text-clickable/"&gt;this article&lt;/a&gt;&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;blockquote&gt;
  &lt;p&gt;This is a simple filter I made for Angular.JS to make url’s in text clickable. Make sure you place the content and filter in the &lt;code&gt;ng-bind-html&lt;/code&gt; attribute of the HTML element. Otherwise the HTML won’t be parsed.&lt;/p&gt;
  
  &lt;p&gt;E.g. &lt;code&gt;&amp;lt;p ng-bind-html="comment.body | parseUrl"&amp;gt;&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/p&gt;
  
  &lt;p&gt;Here’s the parseUrl filter:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;pre&gt;&lt;code&gt;angular
    .module('filters', [])
    .filter('parseUrl', function() {
        var urls = /(\b(https?|ftp):\/\/[A-Z0-9+&amp;amp;@#\/%?=~_|!:,.;-]*[-A-Z0-9+&amp;amp;@#\/%=~_|])/gim;
        var emails = /(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})/gim;

        return function(text) {
            if(text.match(urls)) {
                text = text.replace(urls, "&amp;lt;a href=\"$1\" target=\"_blank\"&amp;gt;$1&amp;lt;/a&amp;gt;");
            }
            if(text.match(emails)) {
                text = text.replace(emails, "&amp;lt;a href=\"mailto:$1\"&amp;gt;$1&amp;lt;/a&amp;gt;");
            }

            return text;
        }
    });
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2019/05/angularjs-resources/</id><title type="text">AngularJS resources</title><summary type="html">&lt;p&gt;Bunch of links related to angular&lt;/p&gt;

</summary><published>2019-05-25T00:00:00Z</published><updated>2019-05-25T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2019/05/angularjs-resources/" /><content type="html">&lt;p&gt;Bunch of links related to angular&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;h3&gt;Libraries&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://sachinchoolur.github.io/ngclipboard/"&gt;https://sachinchoolur.github.io/ngclipboard/&lt;/a&gt; - Angularjs directive for clipboard.js&lt;br /&gt;
&lt;a href="https://github.com/compact/angular-bootstrap-lightbox"&gt;https://github.com/compact/angular-bootstrap-lightbox&lt;/a&gt; - simple modal image preview for angular.js&lt;br /&gt;
&lt;a href="https://uppy.io/"&gt;https://uppy.io/&lt;/a&gt; - open source and easy to set up. I used it in one of the projects  &lt;/p&gt;

&lt;h3&gt;Links&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://blog.152.org/2014/07/angular-form-element-not-attaching-to.html"&gt;http://blog.152.org/2014/07/angular-form-element-not-attaching-to.html&lt;/a&gt; - Angular: Form element not attaching to $scope&lt;br /&gt;
&lt;a href="https://www.codelord.net/2017/05/28/understanding-optional-angularjs-bindings/"&gt;https://www.codelord.net/2017/05/28/understanding-optional-angularjs-bindings/&lt;/a&gt; - Understanding Optional AngularJS Bindings&lt;br /&gt;
&lt;a href="https://www.sitepoint.com/understanding-angulars-apply-digest/"&gt;https://www.sitepoint.com/understanding-angulars-apply-digest/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://itorn.net/angularjs-symbols-and-in-custom-directives-scope-binding/"&gt;https://itorn.net/angularjs-symbols-and-in-custom-directives-scope-binding/&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://oskarhane.com/angular-js-filter-to-make-urls-in-text-clickable/"&gt;http://oskarhane.com/angular-js-filter-to-make-urls-in-text-clickable/&lt;/a&gt; - Angular.JS filter to make url:s in text clickable&lt;br /&gt;
&lt;a href="https://codereview.stackexchange.com/questions/49558/angularjs-constants-depending-on-other-constants-any-established-patterns"&gt;https://codereview.stackexchange.com/questions/49558/angularjs-constants-depending-on-other-constants-any-established-patterns&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2019/05/js-file-upload/</id><title type="text">JS file upload</title><summary type="html">&lt;p&gt;Libraries for adding file upload to the js client.&lt;/p&gt;

</summary><published>2019-05-24T00:00:00Z</published><updated>2019-05-24T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2019/05/js-file-upload/" /><content type="html">&lt;p&gt;Libraries for adding file upload to the js client.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://cssauthor.com/javascript-file-upload-library-plugins/"&gt;https://cssauthor.com/javascript-file-upload-library-plugins/&lt;/a&gt; - 25+ Best JavaScript File Upload Library &amp;amp; Plugins&lt;br /&gt;
&lt;a href="https://uppy.io/"&gt;https://uppy.io/&lt;/a&gt; - open source and easy to set up. I used it in one of the projects&lt;br /&gt;
&lt;a href="https://pqina.nl/filepond/"&gt;https://pqina.nl/filepond/&lt;/a&gt; - open source, authors want to earn money on additional image editing features&lt;br /&gt;
&lt;a href="https://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx/"&gt;https://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx/&lt;/a&gt; - bit on handling uploaded files on server side&lt;br /&gt;
&lt;a href="https://github.com/compact/angular-bootstrap-lightbox"&gt;https://github.com/compact/angular-bootstrap-lightbox&lt;/a&gt; - simple modal image preview for angular.js&lt;br /&gt;
&lt;a href="https://github.com/fengyuanchen/viewerjs"&gt;https://github.com/fengyuanchen/viewerjs&lt;/a&gt; - possible extension to preview uploaded files. However probably something similar can be achieved without library  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2019/05/comparing-two-files-in-visual-studio/</id><title type="text">Comparing two files in visual studio</title><summary type="html">&lt;p&gt;View &gt; Other Windows &gt; Command Window&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Tools.DiffFiles file_1_path file_2_path
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;VS code also can be used for that - &lt;a href="https://www.meziantou.net/comparing-files-using-visual-studio-code.htm"&gt;https://www.meziantou.net/comparing-files-using-visual-studio-code.htm&lt;/a&gt;  &lt;/p&gt;
</summary><published>2019-05-10T00:00:00Z</published><updated>2019-05-10T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2019/05/comparing-two-files-in-visual-studio/" /><content type="html">&lt;p&gt;View &gt; Other Windows &gt; Command Window&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Tools.DiffFiles file_1_path file_2_path
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;VS code also can be used for that - &lt;a href="https://www.meziantou.net/comparing-files-using-visual-studio-code.htm"&gt;https://www.meziantou.net/comparing-files-using-visual-studio-code.htm&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2019/05/finding-bit-locker-recovery-keys/</id><title type="text">Finding BitLocker recovery keys</title><summary type="html">&lt;p&gt;&lt;a href="https://account.activedirectory.windowsazure.com/r/#/profile"&gt;https://account.activedirectory.windowsazure.com/r/#/profile&lt;/a&gt;&lt;/p&gt;
</summary><published>2019-05-10T00:00:00Z</published><updated>2019-05-10T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2019/05/finding-bit-locker-recovery-keys/" /><content type="html">&lt;p&gt;&lt;a href="https://account.activedirectory.windowsazure.com/r/#/profile"&gt;https://account.activedirectory.windowsazure.com/r/#/profile&lt;/a&gt;&lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2019/05/justins-software-read-list/</id><title type="text">Justin's software read list</title><summary type="html">&lt;p&gt;Justin's software read list&lt;/p&gt;

</summary><published>2019-05-10T00:00:00Z</published><updated>2019-05-10T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2019/05/justins-software-read-list/" /><content type="html">&lt;p&gt;Justin's software read list&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;Hi Mateusz,&lt;/p&gt;

&lt;p&gt;There's a number of topics that I think that all software developers should know, some of these range from basic coding styles, as in how to structure your code to be robust and maintainable. And others are around software craftsmanship, how to architect your solutions, how to structure robust maintainable code and why we do it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.justinshield.com/2011/06/essays-software-craftsmanship/#more-502"&gt;https://www.justinshield.com/2011/06/essays-software-craftsmanship/#more-502&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A lot of this comes with experience, and continual learning.
There's a number of books that I recommend, some I have in my personal library, others were part of other companies libraries.&lt;/p&gt;

&lt;p&gt;Book Recommendations (Along with the ones recommended at the end of my blog).&lt;/p&gt;

&lt;p&gt;Microsoft .Net Architecture (Free downloads) &lt;a href="https://docs.microsoft.com/en-us/dotnet/standard/guidance-architecture"&gt;https://docs.microsoft.com/en-us/dotnet/standard/guidance-architecture&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Code Complete 2 - written by Steve McConnel IMO is a must read for every developer. If you haven't I highly recommend it. Similar to Clean Code.&lt;/p&gt;

&lt;p&gt;Design Patterns - Gang of four
We're currently using several design patterns, facade, adapter, decorator, proxy, command / cqrs, factory, strategy etc. It's important to be able to identify these patterns and be able to refactor to these to help avoid complexity, and improve maintainability when designing solutions to problems. More about refactoring to patterns, being able to identify repeating patterns&lt;/p&gt;

&lt;p&gt;Domain Driven Design - Eric Evans (there might be other DDD books out there less... dry)&lt;/p&gt;

&lt;p&gt;Mythical Man Month by Fred Brooks
&lt;a href="https://en.wikipedia.org/wiki/The_Mythical_Man-Month"&gt;https://en.wikipedia.org/wiki/The&lt;em&gt;Mythical&lt;/em&gt;Man-Month&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I also highly recommend that you take a look at this video by Udi Dahan.
&lt;a href="https://www.youtube.com/watch?v=AXU4-VlAAcg"&gt;https://www.youtube.com/watch?v=AXU4-VlAAcg&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Justin&lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2019/05/places-to-go/</id><title type="text">Places to go</title><summary type="html">&lt;p&gt;Places to go&lt;/p&gt;

</summary><published>2019-05-10T00:00:00Z</published><updated>2019-05-10T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2019/05/places-to-go/" /><content type="html">&lt;p&gt;Places to go&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;Zhangjiajie National Forest Park &lt;a href="https://9gag.com/gag/am7A5Lv"&gt;9gag video&lt;/a&gt;&lt;br /&gt;
Keswick Island &lt;a href="https://www.queensland.com/en-au/destination-information/keswick-island"&gt;some info&lt;/a&gt; - recommended by Julia as Whitsundays without people&lt;br /&gt;
1770 &amp;amp; Agnes Waters &lt;a href="https://www.visitagnes1770.com.au/"&gt;some info&lt;/a&gt;&lt;br /&gt;
Waterfalls near brisbance &lt;a href="https://blog.queensland.com/2019/09/23/waterfalls-swimming-holes-near-brisbane/"&gt;some info&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Recommended by some random couple met in Cairns
Litchfield&lt;br /&gt;
Babinda - josephine falls&lt;br /&gt;
Horizontal falls ⚠&lt;br /&gt;
Paronella Park&lt;br /&gt;
Herberton village&lt;br /&gt;
Boonah  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2019/04/links-library/</id><title type="text">Links library</title><summary type="html">&lt;p&gt;Links to projects/libraries/websites that I find useful&lt;/p&gt;

&lt;p&gt;</summary><published>2019-04-25T00:00:00Z</published><updated>2019-04-25T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2019/04/links-library/" /><content type="html">&lt;p&gt;Links to projects/libraries/websites that I find useful&lt;/p&gt;

&lt;p&gt;&lt;!--excerpt--&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;[DMI] Notation&lt;br /&gt;
  DMI - Discover, Master, Influence&lt;br /&gt;
  D - at least read and understood&lt;br /&gt;
  M - put into practice. Either used in own project or described in own blog post&lt;br /&gt;
  I - proficient enough to teach&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;Repository&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://itnext.io/what-i-dont-like-in-your-repo-a602577a526b"&gt;https://itnext.io/what-i-dont-like-in-your-repo-a602577a526b&lt;/a&gt; - requirements for setting up github repository  &lt;/p&gt;

&lt;h3&gt;Git&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://learngitbranching.js.org/"&gt;https://learngitbranching.js.org/&lt;/a&gt; - game like learning git branching&lt;br /&gt;
&lt;a href="https://www.atlassian.com/git/tutorials/rewriting-history"&gt;https://www.atlassian.com/git/tutorials/rewriting-history&lt;/a&gt; - rewriting git history  &lt;/p&gt;

&lt;h3&gt;Icons&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://iconmonstr.com/"&gt;https://iconmonstr.com/&lt;/a&gt; - really cool page that allows you to download solid color icons. It allows you to customise size, color and image type&lt;br /&gt;
&lt;a href="https://thenounproject.com/"&gt;https://thenounproject.com/&lt;/a&gt; - mentioned by Nick Blumhardt when he was talking about finding images for your nuget packages&lt;br /&gt;
&lt;a href="https://www.iconfinder.com/"&gt;https://www.iconfinder.com/&lt;/a&gt; - creative commons icons  &lt;/p&gt;

&lt;h3&gt;Css&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.campaignmonitor.com/css/"&gt;https://www.campaignmonitor.com/css/&lt;/a&gt; - reference guid for css styles supported in various email clients&lt;br /&gt;
&lt;a href="https://gist.github.com/elidickinson/5525752"&gt;https://gist.github.com/elidickinson/5525752&lt;/a&gt; - max-width fix for outlook - useful to create emails with centered content&lt;br /&gt;
&lt;a href="https://storybook.js.org/"&gt;https://storybook.js.org/&lt;/a&gt; - creating UI components in isolation&lt;br /&gt;
&lt;a href="https://medium.com/@bretcameron/parallax-images-sticky-footers-and-more-8-useful-css-tricks-eef12418f676"&gt;https://medium.com/@bretcameron/parallax-images-sticky-footers-and-more-8-useful-css-tricks-eef12418f676&lt;/a&gt; - 8 useful css tricks&lt;br /&gt;
&lt;a href="https://medium.com/@duchong/hi-11539d16bd54"&gt;https://medium.com/@duchong/hi-11539d16bd54&lt;/a&gt; - sticky footer&lt;br /&gt;
&lt;a href="https://www.w3.org/Style/Examples/007/center.en.html"&gt;https://www.w3.org/Style/Examples/007/center.en.html&lt;/a&gt; - centering things&lt;br /&gt;
&lt;a href="https://bootsnipp.com/snippets/DVKDa"&gt;https://bootsnipp.com/snippets/DVKDa&lt;/a&gt; - Bootstrap alert with label&lt;br /&gt;
&lt;a href="https://bootsnipp.com/snippets/OzQj"&gt;https://bootsnipp.com/snippets/OzQj&lt;/a&gt; - Timeline (responsive)&lt;br /&gt;
&lt;a href="https://developers.google.com/web/tools/chrome-devtools/css/print-preview"&gt;https://developers.google.com/web/tools/chrome-devtools/css/print-preview&lt;/a&gt; - Force Chrome DevTools Into Print Preview Mode (CSS Print Media Type)&lt;br /&gt;
&lt;a href="https://cssbattle.dev/"&gt;https://cssbattle.dev/&lt;/a&gt; - Use your CSS skills to replicate targets with smallest possible code&lt;br /&gt;
&lt;a href="https://philipwalton.github.io/solved-by-flexbox/"&gt;https://philipwalton.github.io/solved-by-flexbox/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://css-tricks.com/snippets/css/a-guide-to-flexbox/"&gt;https://css-tricks.com/snippets/css/a-guide-to-flexbox/&lt;/a&gt; - A Complete Guide to Flexbox&lt;br /&gt;
&lt;a href="https://css-tricks.com/snippets/css/complete-guide-grid/"&gt;https://css-tricks.com/snippets/css/complete-guide-grid/&lt;/a&gt; - A Complete Guide to Grid&lt;br /&gt;
&lt;a href="https://cssgradient.io/"&gt;https://cssgradient.io/&lt;/a&gt; - Css gradients&lt;br /&gt;
&lt;a href="https://coolbackgrounds.io/"&gt;https://coolbackgrounds.io/&lt;/a&gt; - Cool backgrounds&lt;br /&gt;
&lt;a href="https://dixonandmoe.com/rellax/"&gt;https://dixonandmoe.com/rellax/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://observablehq.com/@d3/color-schemes"&gt;https://observablehq.com/@d3/color-schemes&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://css-tricks.com/a-couple-of-use-cases-for-calc/"&gt;https://css-tricks.com/a-couple-of-use-cases-for-calc/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/23651942/css-single-column-layout-centered-fixed-width-100-height-w-header-and-footer"&gt;https://stackoverflow.com/questions/23651942/css-single-column-layout-centered-fixed-width-100-height-w-header-and-footer&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://css-tricks.com/things-it-might-be-funuseful-to-try-the-universal-selector-on/"&gt;https://css-tricks.com/things-it-might-be-funuseful-to-try-the-universal-selector-on/&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;Design&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://speakerdeck.com/yeseniaperezcruz/building-flexible-design-systems"&gt;https://speakerdeck.com/yeseniaperezcruz/building-flexible-design-systems&lt;/a&gt; - Building Flexible Design Systems&lt;br /&gt;
&lt;a href="https://encycolorpedia.com/"&gt;https://encycolorpedia.com/&lt;/a&gt; - Finding colors that go well together&lt;br /&gt;
&lt;a href="https://htmlcolorcodes.com/color-picker/"&gt;https://htmlcolorcodes.com/color-picker/&lt;/a&gt; - Finding colors that go well together&lt;br /&gt;
&lt;a href="https://medium.muz.li/color-tools-for-designers-2019-6ebd77a94ab"&gt;https://medium.muz.li/color-tools-for-designers-2019-6ebd77a94ab&lt;/a&gt; -Color Tools For Designers 2019&lt;br /&gt;
&lt;a href="https://primer.style/"&gt;https://primer.style/&lt;/a&gt; - GitHub’s design system&lt;br /&gt;
&lt;a href="https://www.atlassian.design/"&gt;https://www.atlassian.design/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.design/"&gt;https://stackoverflow.design/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.creativeboom.com/"&gt;https://www.creativeboom.com/&lt;/a&gt; - bunch of articles. I'm not sure yet if they are worth anything&lt;br /&gt;
&lt;a href="https://twitter.com/i/events/994601867987619840"&gt;https://twitter.com/i/events/994601867987619840&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://refactoringui.com/"&gt;https://refactoringui.com/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.figma.com/"&gt;https://www.figma.com/&lt;/a&gt; - Figma - Where teams design together  &lt;/p&gt;

&lt;h3&gt;Stock photos&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://unsplash.com/"&gt;https://unsplash.com/&lt;/a&gt; - Free stock photos for commercial use&lt;br /&gt;
&lt;a href="https://pixabay.com/"&gt;https://pixabay.com/&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;React&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/ddesilva/react-event-bus"&gt;https://github.com/ddesilva/react-event-bus&lt;/a&gt; - to be checked out - event bus for react  &lt;/p&gt;

&lt;h3&gt;Progressive web apps&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://deanhume.com/getting-started-with-workbox-javascript-libraries-for-your-next-progressive-web-app/"&gt;https://deanhume.com/getting-started-with-workbox-javascript-libraries-for-your-next-progressive-web-app/&lt;/a&gt; - Getting Started with Workbox: JavaScript Libraries for your next Progressive Web App&lt;br /&gt;
&lt;a href="https://www.slideshare.net/YvesGoeleven/back-to-the-90s-revenge-of-the-static-website"&gt;https://www.slideshare.net/YvesGoeleven/back-to-the-90s-revenge-of-the-static-website&lt;/a&gt; - Back to the 90s' - Revenge of the static website  &lt;/p&gt;

&lt;h3&gt;Learning Java Script&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://javascript.info/"&gt;https://javascript.info/&lt;/a&gt; - comprehensive javascript tutorial. The comment secion claims that the original russian page is even better&lt;br /&gt;
&lt;a href="http://jstherightway.org/"&gt;http://jstherightway.org/&lt;/a&gt; - other js tutorial&lt;br /&gt;
&lt;a href="https://github.com/micromata/awesome-javascript-learning"&gt;https://github.com/micromata/awesome-javascript-learning&lt;/a&gt; - Aggregate of links for JS learning&lt;br /&gt;
&lt;a href="https://codeburst.io/understanding-generators-in-es6-javascript-with-examples-6728834016d5"&gt;https://codeburst.io/understanding-generators-in-es6-javascript-with-examples-6728834016d5&lt;/a&gt; - Understanding Generators in JavaScript with Examples&lt;br /&gt;
&lt;a href="https://css-tricks.com/debouncing-throttling-explained-examples/"&gt;https://css-tricks.com/debouncing-throttling-explained-examples/&lt;/a&gt; - Debouncing and Throttling Explained Through Examples  &lt;/p&gt;

&lt;h4&gt;Tooltips&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://atomiks.github.io/tippyjs/"&gt;https://atomiks.github.io/tippyjs/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://popper.js.org/"&gt;https://popper.js.org/&lt;/a&gt;  &lt;/p&gt;

&lt;h4&gt;Multi select&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://select2.org/"&gt;https://select2.org/&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;SQL&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/olahallengren/sql-server-maintenance-solution/blob/master/README.md"&gt;https://github.com/olahallengren/sql-server-maintenance-solution/blob/master/README.md&lt;/a&gt; - SQL Server Maintenance Solution&lt;br /&gt;
&lt;a href="https://trello.com/c/VCrcKatm/807-https-githubcom-brentozarultd-sql-server-first-responder-kit"&gt;https://trello.com/c/VCrcKatm/807-https-githubcom-brentozarultd-sql-server-first-responder-kit&lt;/a&gt; - DB HEalth Check&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/584820/how-do-you-perform-a-left-outer-join-using-linq-extension-methods"&gt;https://stackoverflow.com/questions/584820/how-do-you-perform-a-left-outer-join-using-linq-extension-methods&lt;/a&gt; - Left outer join in Linq&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/7407650/can-i-change-a-column-from-not-null-to-null-without-dropping-it"&gt;https://stackoverflow.com/questions/7407650/can-i-change-a-column-from-not-null-to-null-without-dropping-it&lt;/a&gt; - Can I change a column from NOT NULL to NULL without dropping it?&lt;br /&gt;
&lt;a href="https://daveaglick.com/posts/computed-properties-and-entity-framework"&gt;https://daveaglick.com/posts/computed-properties-and-entity-framework&lt;/a&gt; - Computed Properties and Entity Framework&lt;br /&gt;
&lt;a href="https://dba.stackexchange.com/questions/152239/sql-server-how-can-varbinarymax-store-8000-bytes"&gt;https://dba.stackexchange.com/questions/152239/sql-server-how-can-varbinarymax-store-8000-bytes&lt;/a&gt; - SQL Server - How can varbinary(max) store &gt; 8000 bytes?&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/141682/how-do-i-find-a-default-constraint-using-information-schema"&gt;https://stackoverflow.com/questions/141682/how-do-i-find-a-default-constraint-using-information-schema&lt;/a&gt; - How do I find a default constraint using INFORMATION&lt;em&gt;SCHEMA?&lt;br /&gt;
&lt;a href="https://www.mssqltips.com/sqlservertip/1264/capturing-graphical-query-plans-with-sql-server-profiler/"&gt;https://www.mssqltips.com/sqlservertip/1264/capturing-graphical-query-plans-with-sql-server-profiler/&lt;/a&gt; - Capturing Graphical Query Plans with SQL Server Profiler&lt;br /&gt;
&lt;a href="https://sqlperformance.com/2013/03/io-subsystem/chunk-deletes"&gt;https://sqlperformance.com/2013/03/io-subsystem/chunk-deletes&lt;/a&gt; - Break large delete operations into chunks&lt;br /&gt;
&lt;a href="https://www.mssqltips.com/sqlservertip/3347/drop-and-recreate-all-foreign-key-constraints-in-sql-server/"&gt;https://www.mssqltips.com/sqlservertip/3347/drop-and-recreate-all-foreign-key-constraints-in-sql-server/&lt;/a&gt; - Drop and Re-Create All Foreign Key Constraints in SQL Server&lt;br /&gt;
&lt;a href="https://www.sqlservercentral.com/forums/topic/disable-enable-all-triggers-on-all-tables-in-sql-server-2005"&gt;https://www.sqlservercentral.com/forums/topic/disable-enable-all-triggers-on-all-tables-in-sql-server-2005&lt;/a&gt; - Disable / Enable All triggers on all tables in sql server 2005&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/11301383/automatically-drop-and-recreate-current-indexes"&gt;https://stackoverflow.com/questions/11301383/automatically-drop-and-recreate-current-indexes&lt;/a&gt; - Automatically Drop and Recreate current indexes&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/14972816/how-to-disable-constraints-for-all-the-tables-and-enable-it"&gt;https://stackoverflow.com/questions/14972816/how-to-disable-constraints-for-all-the-tables-and-enable-it&lt;/a&gt; - How to disable Constraints for all the tables and enable it?&lt;br /&gt;
&lt;a href="https://www.sqlservercentral.com/forums/topic/trouble-printing-out-long-varcharmax-strings"&gt;https://www.sqlservercentral.com/forums/topic/trouble-printing-out-long-varcharmax-strings&lt;/a&gt; - Trouble printing out long VARCHAR(MAX) strings&lt;br /&gt;
&lt;a href="https://www.mssqltips.com/sqlservertip/1394/how-to-store-longer-sql-agent-job-step-output-messages/"&gt;https://www.mssqltips.com/sqlservertip/1394/how-to-store-longer-sql-agent-job-step-output-messages/&lt;/a&gt; - How to store longer SQL Agent Job Step output messages&lt;br /&gt;
&lt;a href="https://www.red-gate.com/simple-talk/sql/learn-sql-server/introduction-to-change-data-capture-cdc-in-sql-server-2008/"&gt;https://www.red-gate.com/simple-talk/sql/learn-sql-server/introduction-to-change-data-capture-cdc-in-sql-server-2008/&lt;/a&gt; - Introduction to Change Data Capture (CDC) in SQL Server 2008&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/1251636/what-do-clustered-and-non-clustered-index-actually-mean"&gt;https://stackoverflow.com/questions/1251636/what-do-clustered-and-non-clustered-index-actually-mean&lt;/a&gt; - What do Clustered and Non clustered index actually mean
&lt;a href="https://stackoverflow.com/questions/11938044/what-are-the-best-practices-for-using-a-guid-as-a-primary-key-specifically-rega"&gt;https://stackoverflow.com/questions/11938044/what-are-the-best-practices-for-using-a-guid-as-a-primary-key-specifically-rega&lt;/a&gt; - best practices for using a GUID as a primary key, specifically regarding performance&lt;br /&gt;
&lt;a href="https://littlekendra.com/2017/01/24/how-to-find-queries-using-an-index-and-queries-using-index-hints/"&gt;https://littlekendra.com/2017/01/24/how-to-find-queries-using-an-index-and-queries-using-index-hints/&lt;/a&gt; - How to Find Queries Using an Index&lt;br /&gt;
&lt;a href="https://www.sqlservercentral.com/articles/removing-tde"&gt;https://www.sqlservercentral.com/articles/removing-tde&lt;/a&gt; - Removing Transparent data encryption (TDE)&lt;br /&gt;
&lt;a href="https://www.sqlservercentral.com/forums/topic/bankers-rounding-in-t-sql-like-math-round-in-net"&gt;https://www.sqlservercentral.com/forums/topic/bankers-rounding-in-t-sql-like-math-round-in-net&lt;/a&gt; - Bankers rounding in SQL&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/21425546/how-to-generate-a-range-of-numbers-between-two-numbers"&gt;https://stackoverflow.com/questions/21425546/how-to-generate-a-range-of-numbers-between-two-numbers&lt;/a&gt; - How to generate a range of numbers between two numbers?&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-rename-transact-sql?redirectedfrom=MSDN&amp;amp;view=sql-server-ver15"&gt;https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-rename-transact-sql?redirectedfrom=MSDN&amp;amp;view=sql-server-ver15&lt;/a&gt; - sp&lt;/em&gt;rename syntax   &lt;/p&gt;

&lt;h3&gt;Tools&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://ngrok.com/"&gt;https://ngrok.com/&lt;/a&gt; - Public URLs for exposing your local web server. Usueful for webhooks testing.&lt;br /&gt;
&lt;a href="https://stackify.com/"&gt;https://stackify.com/&lt;/a&gt; - Monitor app performance in production&lt;br /&gt;
&lt;a href="https://www.terraform.io"&gt;https://www.terraform.io&lt;/a&gt; - Infrastructure as Code &lt;a href="https://www.youtube.com/watch?v=O-KmlUR5TgI"&gt;Jeremy's NDC Sydney Talk&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://cakebuild.net"&gt;https://cakebuild.net&lt;/a&gt; - build definition as Code&lt;br /&gt;
&lt;a href="https://docs.readthedocs.io/en/latest/"&gt;https://docs.readthedocs.io/en/latest/&lt;/a&gt; - managing open source project documantation&lt;br /&gt;
&lt;a href="https://stripe.com/"&gt;https://stripe.com/&lt;/a&gt; - payment processor&lt;br /&gt;
&lt;a href="https://www.checkout.com/"&gt;https://www.checkout.com/&lt;/a&gt; - payment processor&lt;br /&gt;
&lt;a href="https://auth0.com/"&gt;https://auth0.com/&lt;/a&gt; - authentication as a service&lt;br /&gt;
&lt;a href="https://www.xero.com"&gt;https://www.xero.com&lt;/a&gt; - invoicing as a service&lt;br /&gt;
&lt;a href="https://www.buxfer.com/"&gt;https://www.buxfer.com/&lt;/a&gt; - budget management tool&lt;br /&gt;
&lt;a href="https://www.zendesk.com/"&gt;https://www.zendesk.com/&lt;/a&gt; - customer support&lt;br /&gt;
&lt;a href="https://www.canva.com/"&gt;https://www.canva.com/&lt;/a&gt; - awesome content design tool + brand creation tool&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/dotnet/framework/tools/fuslogvw-exe-assembly-binding-log-viewer"&gt;https://docs.microsoft.com/en-us/dotnet/framework/tools/fuslogvw-exe-assembly-binding-log-viewer&lt;/a&gt; - Assembly Binding Log Viewer  &lt;/p&gt;

&lt;h3&gt;How to&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://medium.com/microsoft-1es/reducing-vs-code-ci-build-times-e0c5872bfdde"&gt;https://medium.com/microsoft-1es/reducing-vs-code-ci-build-times-e0c5872bfdde&lt;/a&gt; - Speed up Azure pipelines builds by caching the nuget packages/node_modeuls folders&lt;br /&gt;
&lt;a href="https://medium.com/@Intelygenz/how-to-organize-your-css-with-oocss-bem-smacss-a2317fa083a7"&gt;https://medium.com/@Intelygenz/how-to-organize-your-css-with-oocss-bem-smacss-a2317fa083a7&lt;/a&gt; - How to organize your CSS with OOCSS, BEM &amp;amp; SMACSS. Needs to be digested and converted into my own blog post.&lt;br /&gt;
&lt;a href="https://deadlockempire.github.io/"&gt;https://deadlockempire.github.io/&lt;/a&gt; - master concurency recommended by Andrew Best&lt;br /&gt;
&lt;a href="https://blogs.msdn.microsoft.com/africaapps/2013/06/07/how-to-serve-static-json-files-from-a-windows-azure-website/"&gt;https://blogs.msdn.microsoft.com/africaapps/2013/06/07/how-to-serve-static-json-files-from-a-windows-azure-website/&lt;/a&gt; - How to serve static .json files from a Windows Azure Website (used in new blog)&lt;br /&gt;
&lt;a href="https://tatham.blog/2007/05/23/debugging-ssltls-problems-in-net/"&gt;https://tatham.blog/2007/05/23/debugging-ssltls-problems-in-net/&lt;/a&gt; - troubleshooting ssl handshake errors&lt;br /&gt;
&lt;a href="https://offering.solutions/blog/articles/2018/03/08/create-build-pipeline-for-angular-and-aspnetcore-app-with-visual-studio-team-services/"&gt;https://offering.solutions/blog/articles/2018/03/08/create-build-pipeline-for-angular-and-aspnetcore-app-with-visual-studio-team-services/&lt;/a&gt; - Create a build pipeline for Angular and ASP.NET Core apps with Visual Studio Team Services&lt;br /&gt;
&lt;a href="https://superuser.com/questions/346372/how-do-i-know-what-proxy-server-im-using"&gt;https://superuser.com/questions/346372/how-do-i-know-what-proxy-server-im-using&lt;/a&gt; - How do I know what proxy server I'm using?&lt;br /&gt;
&lt;a href="https://galaxyinternet.us/google-chrome-redirects-localhost-to-https-fix/"&gt;https://galaxyinternet.us/google-chrome-redirects-localhost-to-https-fix/&lt;/a&gt; - HSTS fix for localhost in chrome&lt;br /&gt;
&lt;a href="https://www.tenforums.com/tutorials/56257-add-remove-physical-hard-disk-hyper-v-virtual-machine.html"&gt;https://www.tenforums.com/tutorials/56257-add-remove-physical-hard-disk-hyper-v-virtual-machine.html&lt;/a&gt; - How to Add or Remove a Physical Hard Disk for Hyper-V Virtual Machine&lt;br /&gt;
&lt;a href="https://help.github.com/en/articles/resolving-merge-conflicts-after-a-git-rebase"&gt;https://help.github.com/en/articles/resolving-merge-conflicts-after-a-git-rebase&lt;/a&gt; - Resolving merge conflicts after Git rebase&lt;br /&gt;
&lt;a href="https://docs.npmjs.com/creating-node-js-modules"&gt;https://docs.npmjs.com/creating-node-js-modules&lt;/a&gt; - Creating Node.js modules&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/43849585/update-node-version-in-visual-studio-2017"&gt;https://stackoverflow.com/questions/43849585/update-node-version-in-visual-studio-2017&lt;/a&gt; - Update Node Version in Visual Studio&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/32995066/how-can-i-configure-resharpers-language-level-for-ecmascript-6"&gt;https://stackoverflow.com/questions/32995066/how-can-i-configure-resharpers-language-level-for-ecmascript-6&lt;/a&gt; - How can I configure Resharper's language level for ECMAScript 6?&lt;br /&gt;
&lt;a href="https://www.howtogeek.com/howto/6463/stupid-geek-tricks-how-to-open-the-start-menu-folder-in-windows-7/"&gt;https://www.howtogeek.com/howto/6463/stupid-geek-tricks-how-to-open-the-start-menu-folder-in-windows-7/&lt;/a&gt; - How to Open the Start Menu Folder in Windows 10&lt;br /&gt;
&lt;a href="https://superuser.com/questions/1168835/starting-outlook-automatically-in-windows-10"&gt;https://superuser.com/questions/1168835/starting-outlook-automatically-in-windows-10&lt;/a&gt; - Starting Outlook automatically in Windows 10&lt;br /&gt;
&lt;a href="https://thomaslevesque.com/2016/12/08/fun-with-the-httpclient-pipeline/"&gt;https://thomaslevesque.com/2016/12/08/fun-with-the-httpclient-pipeline/&lt;/a&gt; - How to use custom HttpClient pipeline&lt;br /&gt;
&lt;a href="http://taligarsiel.com/Projects/howbrowserswork1.htm"&gt;http://taligarsiel.com/Projects/howbrowserswork1.htm&lt;/a&gt; - How browsers work&lt;br /&gt;
&lt;a href="https://www.hanselman.com/blog/CDNsFailButYourScriptsDontHaveToFallbackFromCDNToLocalJQuery.aspx"&gt;https://www.hanselman.com/blog/CDNsFailButYourScriptsDontHaveToFallbackFromCDNToLocalJQuery.aspx&lt;/a&gt; - How to setup CDN fallback&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/12084642/powershell-get-number-of-lines-of-big-large-file"&gt;https://stackoverflow.com/questions/12084642/powershell-get-number-of-lines-of-big-large-file&lt;/a&gt; - PowerShell get number of lines of big (large) file&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/17904088/disable-less-css-overwriting-calc"&gt;https://stackoverflow.com/questions/17904088/disable-less-css-overwriting-calc&lt;/a&gt; - Disable LESS-CSS Overwriting calc()&lt;br /&gt;
&lt;a href="https://www.thinktecture.com/en/entity-framework-core/use-transactionscope-with-caution-in-2-1/"&gt;https://www.thinktecture.com/en/entity-framework-core/use-transactionscope-with-caution-in-2-1/&lt;/a&gt; - How System TransactionScope impacts DbContext queries and transactions&lt;br /&gt;
&lt;a href="https://code.visualstudio.com/blogs/2019/05/02/remote-development"&gt;https://code.visualstudio.com/blogs/2019/05/02/remote-development&lt;/a&gt; - Remote development with vs code&lt;br /&gt;
&lt;a href="https://www.kaels-kabbage.com/post/vs-vscode-tips-and-tricks/"&gt;https://www.kaels-kabbage.com/post/vs-vscode-tips-and-tricks/&lt;/a&gt; - Visual Studio and VS Code Tips and Tricks&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/53474431/ef-core-linq-and-conditional-include-and-theninclude-problem"&gt;https://stackoverflow.com/questions/53474431/ef-core-linq-and-conditional-include-and-theninclude-problem&lt;/a&gt; - EF Core linq and conditional include and theninclude problem&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-au/archive/blogs/sqlexpress/using-localdb-with-full-iis-part-2-instance-ownership"&gt;https://docs.microsoft.com/en-au/archive/blogs/sqlexpress/using-localdb-with-full-iis-part-2-instance-ownership&lt;/a&gt; - Using LocalDB with Full IIS, Part 2: Instance Ownership&lt;br /&gt;
&lt;a href="https://www.netlify.com/blog/2018/09/12/the-rise-of-immer-in-react/"&gt;https://www.netlify.com/blog/2018/09/12/the-rise-of-immer-in-react/&lt;/a&gt; - The Rise of Immer in React&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/32968332/how-do-i-prevent-the-error-index-signature-of-object-type-implicitly-has-an-an"&gt;https://stackoverflow.com/questions/32968332/how-do-i-prevent-the-error-index-signature-of-object-type-implicitly-has-an-an&lt;/a&gt; - How do I prevent the error "Index signature of object type implicitly has an 'any' type" when compiling typescript with noImplicitAny flag enabled?&lt;br /&gt;
&lt;a href="https://www.39digits.com/migrate-g-suite-account-to-a-personal-google-account"&gt;https://www.39digits.com/migrate-g-suite-account-to-a-personal-google-account&lt;/a&gt; - Migrate G Suite account to a Personal Google Account&lt;br /&gt;
&lt;a href="https://answers.microsoft.com/en-us/msoffice/forum/all/outlook-tool-bar-moved-and-i-cant-move-it-back/4207ee2a-bc1e-49c0-9607-38ce64587309"&gt;https://answers.microsoft.com/en-us/msoffice/forum/all/outlook-tool-bar-moved-and-i-cant-move-it-back/4207ee2a-bc1e-49c0-9607-38ce64587309&lt;/a&gt; - Outlook toolbar moved and i can't move it back&lt;br /&gt;
&lt;a href="https://github.com/lastpass/lastpass-cli/issues/428"&gt;https://github.com/lastpass/lastpass-cli/issues/428&lt;/a&gt; - onloadwff.js consistently interrupts debugging in chrome devtools&lt;br /&gt;
&lt;a href="https://social.msdn.microsoft.com/Forums/en-US/a97ca3ec-140f-41f8-8ddf-a61f755c970f/application-map-shows-409-errors-for-azure-table-storage?forum=ApplicationInsights"&gt;https://social.msdn.microsoft.com/Forums/en-US/a97ca3ec-140f-41f8-8ddf-a61f755c970f/application-map-shows-409-errors-for-azure-table-storage?forum=ApplicationInsights&lt;/a&gt; - Application Map shows 409 errors for Azure Table storage&lt;br /&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort"&gt;https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort&lt;/a&gt; - How to abort fetch requets&lt;br /&gt;
&lt;a href="https://code.visualstudio.com/docs/editor/userdefinedsnippets"&gt;https://code.visualstudio.com/docs/editor/userdefinedsnippets&lt;/a&gt; - Configure Code Snippets in Visual Studio Code&lt;br /&gt;
&lt;a href="https://www.twilio.com/blog/building-blazing-fast-object-mapper-c-sharp-net-core"&gt;https://www.twilio.com/blog/building-blazing-fast-object-mapper-c-sharp-net-core&lt;/a&gt; - Building a Blazing Fast Object-to-Object Mapper in C# with .NET Core 3.1&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops#use-a-microsoft-hosted-agent"&gt;https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops#use-a-microsoft-hosted-agent&lt;/a&gt; - Find the AzureDevOps hosted build agents images details&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/23010944/auto-format-parameters-one-per-line"&gt;https://stackoverflow.com/questions/23010944/auto-format-parameters-one-per-line&lt;/a&gt; - Resharper: Auto format parameters one per line  &lt;/p&gt;

&lt;h3&gt;Structured learning&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://codeburst.io/the-2018-web-developer-roadmap-826b1b806e8d"&gt;https://codeburst.io/the-2018-web-developer-roadmap-826b1b806e8d&lt;/a&gt; - An illustrated guide to becoming a Frontend or Backend Developer with links to courses&lt;br /&gt;
&lt;a href="https://codeburst.io/the-ultimate-guide-to-learning-full-stack-web-development-in-6-months-for-30-72b3854a7458"&gt;https://codeburst.io/the-ultimate-guide-to-learning-full-stack-web-development-in-6-months-for-30-72b3854a7458&lt;/a&gt; - The 2019 Guide to Learning Web Development.&lt;br /&gt;
&lt;a href="https://integrationmadeeasy.org/2020/03/05/my-approach-to-developing-net-core-web-apis/amp/"&gt;https://integrationmadeeasy.org/2020/03/05/my-approach-to-developing-net-core-web-apis/amp/&lt;/a&gt; - My Approach to Developing .Net Core Web APIs – Introduction  &lt;/p&gt;

&lt;h3&gt;Teaching&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.troyhunt.com/kids-and-code-object-orientated-programming-with-code-combat/"&gt;https://www.troyhunt.com/kids-and-code-object-orientated-programming-with-code-combat/&lt;/a&gt; - Kids and Code: Object Oriented Programming with Code Combat  &lt;/p&gt;

&lt;h3&gt;Learning how to code&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/learning/me"&gt;https://www.linkedin.com/learning/me&lt;/a&gt; - LinkedIn learning (previously Lynda.com) - meh&lt;br /&gt;
&lt;a href="https://egghead.io/"&gt;https://egghead.io/&lt;/a&gt; - Egghead - mainly js&lt;br /&gt;
&lt;a href="https://www.pluralsight.com/"&gt;https://www.pluralsight.com/&lt;/a&gt; - Pluralsight - everything&lt;br /&gt;
&lt;a href="https://leetcode.com/"&gt;https://leetcode.com/&lt;/a&gt; - algorithms; recommended by Jarek&lt;br /&gt;
&lt;a href="https://msdn.microsoft.com/en-us/"&gt;https://msdn.microsoft.com/en-us/&lt;/a&gt; - MSDN - probably too broad&lt;br /&gt;
&lt;a href="https://github.com/dotnet/coreclr/tree/master/Documentation/botr"&gt;https://github.com/dotnet/coreclr/tree/master/Documentation/botr&lt;/a&gt; - .NET Book of the Runtime&lt;br /&gt;
&lt;a href="https://github.com/thangchung/awesome-dotnet-core"&gt;https://github.com/thangchung/awesome-dotnet-core&lt;/a&gt; - A collection of awesome .NET core libraries, tools, frameworks and software&lt;br /&gt;
&lt;a href="https://www.learnentityframeworkcore.com/"&gt;https://www.learnentityframeworkcore.com/&lt;/a&gt; - Good EF Core starting point&lt;br /&gt;
&lt;a href="https://qhmit.com/"&gt;https://qhmit.com/&lt;/a&gt; - Some frontend tutorials (basic level). I need to check it's quality (I haven't used it yet)&lt;br /&gt;
&lt;a href="https://www.udemy.com/user/maximilian-schwarzmuller/"&gt;https://www.udemy.com/user/maximilian-schwarzmuller/&lt;/a&gt; - Maximilian Schwarzmüller courses (recommended by a distant friend)&lt;br /&gt;
&lt;a href="https://www.samanthaming.com/"&gt;https://www.samanthaming.com/&lt;/a&gt; - Small examples of how to do things in front end&lt;br /&gt;
&lt;a href="http://programming-motherfucker.com/"&gt;http://programming-motherfucker.com/&lt;/a&gt; - selection of links to learnign reources  &lt;/p&gt;

&lt;h3&gt;Prototyping&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io"&gt;https://codesandbox.io&lt;/a&gt; - pretty sweet. Code can be saved to github&lt;br /&gt;
&lt;a href="https://webmaker.app/"&gt;https://webmaker.app/&lt;/a&gt; - I didn't have a change to play with this one yet  &lt;/p&gt;

&lt;h3&gt;Good practices&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/coding-style.md"&gt;https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/coding-style.md&lt;/a&gt; - C# Coding Style&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/"&gt;https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/&lt;/a&gt; - Framework Design Guidelines&lt;br /&gt;
&lt;a href="https://12factor.net/"&gt;https://12factor.net/&lt;/a&gt; - methodology for building software-as-a-service apps&lt;br /&gt;
&lt;a href="https://monzo.com/blog/2018/06/29/engineering-principles"&gt;https://monzo.com/blog/2018/06/29/engineering-principles&lt;/a&gt; - Engineering Principles at Monzo&lt;br /&gt;
&lt;a href="https://jamesclear.com/beginners-guide-deliberate-practice"&gt;https://jamesclear.com/beginners-guide-deliberate-practice&lt;/a&gt; - Deliberate practice&lt;br /&gt;
&lt;a href="https://cutle.fish/blog/12-signs-youre-working-in-a-feature-factory"&gt;https://cutle.fish/blog/12-signs-youre-working-in-a-feature-factory&lt;/a&gt; - 12 Signs You’re Working in a Feature Factory  &lt;/p&gt;

&lt;h3&gt;Authentication related&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.scottbrady91.com/OAuth/Why-the-Resource-Owner-Password-Credentials-Grant-Type-is-not-Authentication-nor-Suitable-for-Modern-Applications"&gt;https://www.scottbrady91.com/OAuth/Why-the-Resource-Owner-Password-Credentials-Grant-Type-is-not-Authentication-nor-Suitable-for-Modern-Applications&lt;/a&gt; - Why the Resource Owner Password Credentials Grant Type is not Authentication nor Suitable for Modern Applications&lt;br /&gt;
&lt;a href="https://www.scottbrady91.com/OAuth/The-Wrong-Ways-to-Protect-an-API"&gt;https://www.scottbrady91.com/OAuth/The-Wrong-Ways-to-Protect-an-API&lt;/a&gt; - The Wrong Ways to Protect an API&lt;br /&gt;
&lt;a href="https://vimeo.com/113604459"&gt;https://vimeo.com/113604459&lt;/a&gt; - Unifying Authentication &amp;amp; Delegated API Access for Mobile, Web and the Desktop with OpenID Connect and OAuth2 by Dominick Baier&lt;br /&gt;
&lt;a href="https://blogs.forgerock.org/petermajor/2013/02/single-sign-on-the-basic-concepts/"&gt;https://blogs.forgerock.org/petermajor/2013/02/single-sign-on-the-basic-concepts/&lt;/a&gt; - Single Sign-On – the basic concepts&lt;br /&gt;
&lt;a href="https://www.andrew-best.com/posts/learn-auth-the-hard-way-part-one/"&gt;https://www.andrew-best.com/posts/learn-auth-the-hard-way-part-one/&lt;/a&gt; - Learn Authentication The Hard Way: Part One  &lt;/p&gt;

&lt;h3&gt;Security related&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://lockmedown.com/preventing-xss-in-asp-net-made-easy/#client"&gt;https://lockmedown.com/preventing-xss-in-asp-net-made-easy/#client&lt;/a&gt; - Preventing XSS in ASP.NET Made Easy&lt;br /&gt;
&lt;a href="https://github.com/mganss/HtmlSanitizer"&gt;https://github.com/mganss/HtmlSanitizer&lt;/a&gt; - HtmlSanitizer  &lt;/p&gt;

&lt;h3&gt;Concepts&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://www.clivemaxfield.com/diycalculator/sp-round.shtml"&gt;http://www.clivemaxfield.com/diycalculator/sp-round.shtml&lt;/a&gt; - Various roundings  &lt;/p&gt;

&lt;h3&gt;Architectures&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/builders-library/challenges-with-distributed-systems/"&gt;https://aws.amazon.com/builders-library/challenges-with-distributed-systems/&lt;/a&gt; - Challenges with distributed systems&lt;br /&gt;
&lt;a href="https://medium.com/airbnb-engineering/dynein-building-a-distributed-delayed-job-queueing-system-93ab10f05f99"&gt;https://medium.com/airbnb-engineering/dynein-building-a-distributed-delayed-job-queueing-system-93ab10f05f99&lt;/a&gt; - Dynein: Building an Open-source Distributed Delayed Job Queueing System&lt;br /&gt;
&lt;a href="https://alexpareto.com/scalability/systems/2020/02/03/scaling-100k.html"&gt;https://alexpareto.com/scalability/systems/2020/02/03/scaling-100k.html&lt;/a&gt; - Scaling to 100k Users&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/azure/architecture/architectures/"&gt;https://docs.microsoft.com/en-us/azure/architecture/architectures/&lt;/a&gt; - Reference Architectures and Solution Ideas  &lt;/p&gt;

&lt;h3&gt;Dependency injection&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cesardelatorre/comparing-asp-net-core-ioc-service-life-times-and-autofac-ioc-instance-scopes/"&gt;https://devblogs.microsoft.com/cesardelatorre/comparing-asp-net-core-ioc-service-life-times-and-autofac-ioc-instance-scopes/&lt;/a&gt; - Comparing ASP.NET Core IoC container service lifetimes with Autofac IoC container instance scopes&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection"&gt;https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection&lt;/a&gt; - Dependency injection in ASP.NET Core  &lt;/p&gt;

&lt;h3&gt;Frameworks&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://aspnetzero.com/#"&gt;https://aspnetzero.com/#&lt;/a&gt; - building blocks for modern website&lt;br /&gt;
&lt;a href="https://zurb.com/"&gt;https://zurb.com/&lt;/a&gt; - building blocks from creators of Foundation framework&lt;br /&gt;
&lt;a href="http://websharper.com/"&gt;http://websharper.com/&lt;/a&gt; - project templates for reactive applications  &lt;/p&gt;

&lt;h3&gt;Website templates&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://html5up.net/"&gt;https://html5up.net/&lt;/a&gt; - I used one of the templates as my blog template  &lt;/p&gt;

&lt;h3&gt;Libraries&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://nodatime.org/"&gt;https://nodatime.org/&lt;/a&gt; - managing "date" and "time" in the c# app &lt;code&gt;I love that one&lt;/code&gt;&lt;br /&gt;
&lt;a href="https://github.com/App-vNext/Polly"&gt;https://github.com/App-vNext/Polly&lt;/a&gt; - resilence policies for .net&lt;br /&gt;
&lt;a href="https://github.com/AutoFixture/AutoFixture"&gt;https://github.com/AutoFixture/AutoFixture&lt;/a&gt; - Creating fake data for tests &lt;code&gt;never used yet&lt;/code&gt;&lt;br /&gt;
&lt;a href="https://clipboardjs.com/"&gt;https://clipboardjs.com/&lt;/a&gt; - copy to clipboard for js apps  &lt;/p&gt;

&lt;h3&gt;Investing&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.spaceship.com.au/"&gt;https://www.spaceship.com.au/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.coinbase.com/"&gt;https://www.coinbase.com/&lt;/a&gt; - Crypto currency trading. Mainly for US&lt;br /&gt;
&lt;a href="https://www.coinspot.com.au/"&gt;https://www.coinspot.com.au/&lt;/a&gt; - Crypt currency trading. Mainly for AU&lt;br /&gt;
&lt;a href="https://www.investopedia.com/articles/investing/082914/basics-buying-and-investing-bitcoin.asp"&gt;https://www.investopedia.com/articles/investing/082914/basics-buying-and-investing-bitcoin.asp&lt;/a&gt; - How to Invest in Bitcoin&lt;br /&gt;
&lt;a href="https://www.cmcmarkets.com/en-au/"&gt;https://www.cmcmarkets.com/en-au/&lt;/a&gt; - full blown investing platform recommended by Maciek  &lt;/p&gt;

&lt;h3&gt;Recruiting&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.technicallycompatible.com/"&gt;https://www.technicallycompatible.com/&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;Discounts&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.joinhoney.com/"&gt;https://www.joinhoney.com/&lt;/a&gt; - Honey chrome extension&lt;br /&gt;
&lt;a href="https://www.retailmenot.com"&gt;https://www.retailmenot.com&lt;/a&gt; - RetailMeNot  &lt;/p&gt;

&lt;h3&gt;Branding&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.spreadshirt.com.au/"&gt;https://www.spreadshirt.com.au/&lt;/a&gt; - custom T-Shirts  &lt;/p&gt;

&lt;h3&gt;Learning english&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://ielts.com.au/study-for-ielts/writing/"&gt;https://ielts.com.au/study-for-ielts/writing/&lt;/a&gt; - IELTS Writing assist - didn't work as expected as payment didn't go through&lt;br /&gt;
&lt;a href="https://www.toastmasters.org/"&gt;https://www.toastmasters.org/&lt;/a&gt; - Public speaking practice  &lt;/p&gt;

&lt;h3&gt;Website benchmarking&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://tools.pingdom.com/"&gt;https://tools.pingdom.com/&lt;/a&gt; - page load benchmark  &lt;/p&gt;

&lt;h3&gt;Blog frameworks&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://hexo.io/"&gt;https://hexo.io/&lt;/a&gt; - Hexo&lt;br /&gt;
&lt;a href="https://gohugo.io/"&gt;https://gohugo.io/&lt;/a&gt; - Hugo - used by Andrew Best and Kael Larkin&lt;br /&gt;
&lt;a href="https://github.com/Sandra/Sandra.Snow"&gt;https://github.com/Sandra/Sandra.Snow&lt;/a&gt; - Sandra Snow - used by me&lt;br /&gt;
&lt;a href="https://ghost.org/"&gt;https://ghost.org/&lt;/a&gt; - Ghost&lt;br /&gt;
&lt;a href="https://www.staticgen.com/"&gt;https://www.staticgen.com/&lt;/a&gt; - A List of Static Site Generators for JAMstack Sites  &lt;/p&gt;

&lt;h3&gt;Extensions&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=MadsKristensen.WebPackTaskRunner"&gt;https://marketplace.visualstudio.com/items?itemName=MadsKristensen.WebPackTaskRunner&lt;/a&gt; - WebPack Task Runner &lt;code&gt;used long time ago&lt;/code&gt;&lt;br /&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=MadsKristensen.NPMTaskRunner"&gt;https://marketplace.visualstudio.com/items?itemName=MadsKristensen.NPMTaskRunner&lt;/a&gt; - NPM Task Runner &lt;code&gt;used long time ago&lt;/code&gt;&lt;br /&gt;
&lt;a href="https://chrome.google.com/webstore/detail/resource-override/pkoacgokdfckfpndoffpifphamojphii"&gt;https://chrome.google.com/webstore/detail/resource-override/pkoacgokdfckfpndoffpifphamojphii&lt;/a&gt; - Chrome - Resource Override (to reduce the need for backend server)  &lt;/p&gt;

&lt;h3&gt;Blogs&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://blog.anarks2.com/"&gt;https://blog.anarks2.com/&lt;/a&gt; Ben Hockley&lt;br /&gt;
&lt;a href="https://www.kaels-kabbage.com"&gt;https://www.kaels-kabbage.com&lt;/a&gt; Kael Larkin&lt;br /&gt;
&lt;a href="https://www.mehdi-khalili.com/"&gt;https://www.mehdi-khalili.com/&lt;/a&gt; Mehdi Khalili&lt;br /&gt;
&lt;a href="https://www.andrew-best.com/"&gt;https://www.andrew-best.com/&lt;/a&gt; Andrew Best&lt;br /&gt;
&lt;a href="https://www.rahulpnath.com/"&gt;https://www.rahulpnath.com/&lt;/a&gt; Rahul Nath&lt;br /&gt;
&lt;a href="https://devstyle.pl/"&gt;https://devstyle.pl/&lt;/a&gt; Maciej Aniserowicz&lt;br /&gt;
&lt;a href="http://www.jeremycade.com"&gt;http://www.jeremycade.com&lt;/a&gt; Jeremy Cade&lt;br /&gt;
&lt;a href="https://michael-wolfenden.github.io/"&gt;https://michael-wolfenden.github.io/&lt;/a&gt; The Wolf Report (Michael Wolfenden)&lt;br /&gt;
&lt;a href="http://paulstovell.com/"&gt;http://paulstovell.com/&lt;/a&gt; Paul Stovell&lt;br /&gt;
&lt;a href="https://www.justinshield.com/"&gt;https://www.justinshield.com/&lt;/a&gt; Justin Shield&lt;br /&gt;
&lt;a href="https://jcooney.net/"&gt;https://jcooney.net/&lt;/a&gt; Joseph Cooney&lt;br /&gt;
&lt;a href="https://blog.mcilreavy.com/"&gt;https://blog.mcilreavy.com/&lt;/a&gt; Paul Mcilreavy&lt;br /&gt;
&lt;a href="https://blog.codinghorror.com/"&gt;https://blog.codinghorror.com/&lt;/a&gt; - Jeff Atwood&lt;br /&gt;
&lt;a href="https://bnek.github.io/"&gt;https://bnek.github.io/&lt;/a&gt; - Banjamin Meyer&lt;br /&gt;
&lt;a href="https://calebporzio.com/"&gt;https://calebporzio.com/&lt;/a&gt; - Caleb Porzio&lt;br /&gt;
&lt;a href="https://sgryphon.gamertheory.net/"&gt;https://sgryphon.gamertheory.net/&lt;/a&gt; - Sly Gryphon  &lt;/p&gt;

&lt;h3&gt;Photography&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.dxo.com/"&gt;https://www.dxo.com/&lt;/a&gt; - lightroom alternative recommended by Bartosz&lt;br /&gt;
&lt;a href="https://skylum.com/"&gt;https://skylum.com/&lt;/a&gt; - Luminar - possibel alternative&lt;br /&gt;
&lt;a href="https://witharsenal.com/"&gt;https://witharsenal.com/&lt;/a&gt; - Camera asistant&lt;br /&gt;
&lt;a href="https://www.darktable.org/"&gt;https://www.darktable.org/&lt;/a&gt; - lightroom alternative recommended by Kuba  &lt;/p&gt;

&lt;h3&gt;Photo related apps (used by AgaCyka)&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.pixellu.com/smartslides/"&gt;https://www.pixellu.com/smartslides/&lt;/a&gt; - Slide shows&lt;br /&gt;
&lt;a href="https://pixieset.com/"&gt;https://pixieset.com/&lt;/a&gt; - Photo galeries  &lt;/p&gt;

&lt;h3&gt;Video Editing&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.blackmagicdesign.com/au/products/davinciresolve/"&gt;https://www.blackmagicdesign.com/au/products/davinciresolve/&lt;/a&gt; DaVinci Resolve - recommended by Ania, I use it at the moment&lt;br /&gt;
&lt;a href="https://www.nchsoftware.com/videopad/index.html"&gt;https://www.nchsoftware.com/videopad/index.html&lt;/a&gt; VideoPad - I was using it before DaVinci&lt;br /&gt;
&lt;a href="https://shotcut.org/"&gt;https://shotcut.org/&lt;/a&gt; Shortcut - had trouble with using graphic card to speed up rendering&lt;br /&gt;
&lt;a href="https://clipchamp.com/en/"&gt;https://clipchamp.com/en/&lt;/a&gt; - Product developed by company where Szymon works&lt;br /&gt;
&lt;a href="https://obsproject.com/"&gt;https://obsproject.com/&lt;/a&gt; - Free and open source software for video recording and live streaming.  &lt;/p&gt;

&lt;h3&gt;Screen to gif&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.screentogif.com/"&gt;https://www.screentogif.com/&lt;/a&gt; - recommened by vs code docs maintainers (for windows) on &lt;a href="https://github.com/Microsoft/vscode-extension-samples/issues/40"&gt;github&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://getkap.co/"&gt;https://getkap.co/&lt;/a&gt; - recommened by vs code docs maintainers (for mac) with &lt;a href="https://github.com/wulkano/kap"&gt;github repo&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.cockos.com/licecap/"&gt;https://www.cockos.com/licecap/&lt;/a&gt; - found on the net, not used yet&lt;br /&gt;
&lt;a href="http://www.lcdf.org/gifsicle/"&gt;http://www.lcdf.org/gifsicle/&lt;/a&gt; - gif size optimisation  &lt;/p&gt;

&lt;h3&gt;Fiddles&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://jsfiddle.net/SAWsA/13441/"&gt;http://jsfiddle.net/SAWsA/13441/&lt;/a&gt; - custom angular.js table paging, sorting and searching  &lt;/p&gt;

&lt;h3&gt;Maintaining docs&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://readme.com/"&gt;https://readme.com/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://readthedocs.org/"&gt;https://readthedocs.org/&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;Drone&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://courses.phantomfilmschool.com/courses/sample-course-of-phantomfilmschool1"&gt;https://courses.phantomfilmschool.com/courses/sample-course-of-phantomfilmschool1&lt;/a&gt; - Sample course of Phantom Filmschool 1&lt;br /&gt;
&lt;a href="https://flylitchi.com/"&gt;https://flylitchi.com/&lt;/a&gt; -  Autonomous flight app for DJI drones&lt;br /&gt;
&lt;a href="https://geoawesomeness.com/must-have-drone-apps-for-every-drone-pilot/"&gt;https://geoawesomeness.com/must-have-drone-apps-for-every-drone-pilot/&lt;/a&gt; - Must have Drone Apps for every Drone Pilot&lt;br /&gt;
&lt;a href="https://www.drones.com.au/store/pgy-tech-mrc-uv-filter-for-dji-mavic-mini.html"&gt;https://www.drones.com.au/store/pgy-tech-mrc-uv-filter-for-dji-mavic-mini.html&lt;/a&gt; - PGY Tech MRC-UV Filter for DJI Mavic Mini  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2019/04/markdown-cheet-sheet/</id><title type="text">Mark down cheat sheet</title><summary type="html">&lt;p&gt;Markdown cheat scheet&lt;/p&gt;

</summary><published>2019-04-25T00:00:00Z</published><updated>2019-04-25T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2019/04/markdown-cheet-sheet/" /><content type="html">&lt;p&gt;Markdown cheat scheet&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;h2&gt;Headers&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;# H1
## H2
### H3
#### H4
##### H5
###### H6
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;New Line&lt;/h2&gt;

&lt;p&gt;(In this example, leading and trailing spaces are shown with with dots: ⋅)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;two spaces at the end⋅⋅
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Emphasis&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;*italics*
**bold**
~~strikethrough~~
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Links&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;[I'm an inline-style link](https://www.google.com)
![alt text](https://github.com/icon48.png "Logo Title Text 1")
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Code blocks&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;Inline `code`
```
fenced code block
```
    code block can also be created by four spaces indent
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Block quotes&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt; Blockquotes are very handy in email to emulate reply text.
&amp;gt; This line is part of the same quote.

Quote break.

&amp;gt; This is a very long line that will still be quoted     properly when it wraps. Oh boy let's keep writing to make     sure this is long enough to actually wrap for everyone. Oh,     you can *put* **Markdown** into a blockquote.
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Horizontal lines&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;--- or ***
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Lists&lt;/h2&gt;

&lt;p&gt;(In this example, leading and trailing spaces are shown with with dots: ⋅)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;1. First ordered list item
2. Another item
⋅⋅* Unordered sub-list. 
1. Actual numbers don't matter, just that it's a number
⋅⋅1. Ordered sub-list
4. And another item.

⋅⋅⋅You can have properly indented paragraphs within list     items. Notice the blank line above, and the leading spaces     (at least one, but we'll use three here to also align the     raw Markdown).

⋅⋅⋅To have a line break without a paragraph, you will need     to use two trailing spaces.⋅⋅
⋅⋅⋅Note that this line is separate, but within the same     paragraph.⋅⋅
⋅⋅⋅(This is contrary to the typical GFM line break     behaviour, where trailing spaces are not required.)

* Unordered list can use asterisks
- Or minuses
+ Or pluses
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Tables&lt;/h2&gt;

&lt;p&gt;Tables aren't part of the core Markdown spec, but some markdown engines support them&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Colons can be used to align columns.

| Tables        | Are           | Cool  |
| ------------- |:-------------:| -----:|
| col 3 is      | right-aligned | $1600 |
| col 2 is      | centered      |   $12 |
| zebra stripes | are neat      |    $1 |

There must be at least 3 dashes separating each header cell.
The outer pipes (|) are optional, and you don't need to     make the raw Markdown line up prettily. You can also use     inline Markdown.

Markdown | Less | Pretty
--- | --- | ---
*Still* | `renders` | **nicely**
1 | 2 | 3
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Escape characters&lt;/h2&gt;

&lt;p&gt;You can use an extra backtick at the start and end to make sure it escapes correctly:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;``List`1``
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;When inline it will display as &lt;code&gt;List`1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Markdown provides backslash escapes for the following characters:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;\   backslash
`   backtick
*   asterisk
_   underscore
{}  curly braces
[]  square brackets
()  parentheses
#   hash mark
+   plus sign
-   minus sign (hyphen)
.   dot
!   exclamation mark
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;for example, this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;## \\ \` \* \_ \{ \} \[ \] \( \) \# \+ \- \. \!
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;returns:&lt;/p&gt;

&lt;h2&gt;\ ` * _ { } [ ] ( ) # + - . !&lt;/h2&gt;

&lt;p&gt;For fenced code blocks, the prescription is more backticks.&lt;/p&gt;

&lt;p&gt;This Markdown&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;````
```
Example of Markdown syntax for fenced code block with triple back ticks
```
````
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;will be rendered like this&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;```
Example of Markdown syntax for fenced code block with triple back ticks
```
&lt;/code&gt;&lt;/pre&gt;

&lt;hr /&gt;

&lt;p&gt;taken from &lt;a href="https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet"&gt;https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet&lt;/a&gt;&lt;br /&gt;
and &lt;a href="https://meta.stackexchange.com/questions/82718/how-do-i-escape-a-backtick-within-in-line-code-in-markdown"&gt;https://meta.stackexchange.com/questions/82718/how-do-i-escape-a-backtick-within-in-line-code-in-markdown&lt;/a&gt;&lt;br /&gt;
the extended syntax has also support for checkboxes and header links &lt;a href="https://www.markdownguide.org/extended-syntax/"&gt;https://www.markdownguide.org/extended-syntax/&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2019/04/running-sql-server-management-studio-as-different-user/</id><title type="text">Running SSMS as different user</title><summary type="html">&lt;p&gt;Running SSMS as different user&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;runas /user:&amp;lt;domain&amp;gt;\&amp;lt;username&amp;gt; /netonly "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\Ssms.exe"
&lt;/code&gt;&lt;/pre&gt;
</summary><published>2019-04-25T00:00:00Z</published><updated>2019-04-25T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2019/04/running-sql-server-management-studio-as-different-user/" /><content type="html">&lt;p&gt;Running SSMS as different user&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;runas /user:&amp;lt;domain&amp;gt;\&amp;lt;username&amp;gt; /netonly "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\Ssms.exe"
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2019/04/sandra-snow-cheat-scheet/</id><title type="text">Sandra snow cheat sheet</title><summary type="html">&lt;p&gt;Sandra snow cheat scheet&lt;/p&gt;

</summary><published>2019-04-25T00:00:00Z</published><updated>2019-04-25T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2019/04/sandra-snow-cheat-scheet/" /><content type="html">&lt;p&gt;Sandra snow cheat scheet&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;h3&gt;TL/DR&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;---
category: how to, sandra snow
title: Sandra snow
published: true
---
Sandra snow cheat scheet

&amp;lt;!--excerpt--&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Published options&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;true&lt;/strong&gt; - True, this is optional, but its basically the same as not supplying the published state at all. It will compile your post and make it publicly available.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;private&lt;/strong&gt; - Private is a post that will not be compiled at all, this will stay as markdown, good for when you want to begin writing something but not have it show up online yet.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;draft&lt;/strong&gt; - Draft is basically a finished or rough cut blog post that you will publish soon, it will be compiled to /drafts URL and be publicly accessible (either via a known page or the direct URL)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Full Docs&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/Sandra/Sandra.Snow"&gt;Project site&lt;/a&gt; &gt; &lt;a href="https://github.com/Sandra/Sandra.Snow/wiki"&gt;Wiki&lt;/a&gt;&lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2018/09/kill-database-connections/</id><title type="text">Kill database connections</title><summary type="html">&lt;p&gt;Kill database connections script. Usefull before db restore.&lt;/p&gt;

</summary><published>2018-09-28T00:00:00Z</published><updated>2018-09-28T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2018/09/kill-database-connections/" /><content type="html">&lt;p&gt;Kill database connections script. Usefull before db restore.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;Kill all connections to database&lt;/p&gt;

&lt;p&gt;For MS SQL Server 2012 and above&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;USE [master];

DECLARE @kill varchar(8000) = '';  
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), session_id) + ';'  
FROM sys.dm_exec_sessions
WHERE database_id  = db_id('MyDB')

EXEC(@kill);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;For MS SQL Server 2000, 2005, 2008&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;USE master;

DECLARE @kill varchar(8000); SET @kill = '';  
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), spid) + ';'  
FROM master..sysprocesses  
WHERE dbid = db_id('MyDB')

EXEC(@kill); 
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Kill all connections apart form yours&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;DECLARE @Table TABLE(
    SPID INT,
    ECID INT,
    Status VARCHAR(MAX),
    LoginName VARCHAR(MAX),
    HostName VARCHAR(MAX),
    BlkBy VARCHAR(MAX),
    DBName VARCHAR(MAX),
    CMD VARCHAR(MAX),
    REQUESTID INT
)

INSERT INTO @Table EXEC sp_who

SELECT  *
FROM    @Table

select @@SPID

SELECT  SPID
FROM    @Table
where hostname = 'DESKTOP-N16OGI7' and spid &amp;lt;&amp;gt; @@SPID

declare users cursor for
SELECT  SPID
FROM    @Table
where hostname = 'DESKTOP-N16OGI7' and spid &amp;lt;&amp;gt; @@SPID

declare @userSpid int
DECLARE @kill varchar(8000); SET @kill = '';
open users
fetch users into @userSpid
while @@fetch_status=0
begin
    SET @kill = 'kill '+ CONVERT(varchar(5), @userSpid) + ';'
    print @kill
    EXEC(@kill);
    fetch users into @userSpid
end

close users
deallocate users
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To see the dirty data that is not yet commited&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Further reading&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/7197574/script-to-kill-all-connections-to-a-database-more-than-restricted-user-rollback"&gt;Script to kill all connections to a database&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/sql/t-sql/language-elements/kill-transact-sql"&gt;KILL (Transact-SQL)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/sql/t-sql/functions/spid-transact-sql"&gt;@@SPID (Transact-SQL)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.brentozar.com/archive/2014/03/happens-issue-kill/"&gt;Rollback: What happens when you KILL a session?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/3978227/how-to-kill-or-rollback-active-transaction"&gt;How to kill or rollback active transaction?&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/sql/t-sql/statements/set-transaction-isolation-level-transact-sql"&gt;SET TRANSACTION ISOLATION LEVEL (Transact-SQL)&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2018/07/azure-web-app-memory-dump/</id><title type="text">Create and analyze Azure Web App memory dump</title><summary type="html">&lt;p&gt;Create and analyze Azure Web App memory dump&lt;/p&gt;

</summary><published>2018-07-09T00:00:00Z</published><updated>2018-07-09T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2018/07/azure-web-app-memory-dump/" /><content type="html">&lt;p&gt;Create and analyze Azure Web App memory dump&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-au/archive/blogs/benjaminperkins/create-a-memory-dump-for-your-slow-performing-web-app"&gt;https://docs.microsoft.com/en-au/archive/blogs/benjaminperkins/create-a-memory-dump-for-your-slow-performing-web-app&lt;/a&gt; - Create a memory dump for your slow performing Web App&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-au/archive/blogs/waws/debugging-a-w3wp-memory-dump-of-a-slow-performing-asp-net-azure-web-app"&gt;https://docs.microsoft.com/en-au/archive/blogs/waws/debugging-a-w3wp-memory-dump-of-a-slow-performing-asp-net-azure-web-app&lt;/a&gt; - Debugging a W3WP memory dump of a slow performing ASP.NET Azure Web App  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2018/05/running-sql-commands-only-on-primary-server-in-availability-group/</id><title type="text">Running sql commands only on primary server in high availability group</title><summary type="html">&lt;p&gt;Running sql commands only on primary server in high availability group&lt;/p&gt;

</summary><published>2018-05-28T00:00:00Z</published><updated>2018-05-28T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2018/05/running-sql-commands-only-on-primary-server-in-availability-group/" /><content type="html">&lt;p&gt;Running sql commands only on primary server in high availability group&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;pre&gt;&lt;code&gt;DECLARE @isPrimary bit = 0

IF SERVERPROPERTY ('IsHadrEnabled') = 1
BEGIN
    SELECT
    @isPrimary = 1
    FROM
    sys.availability_groups_cluster AS AGC
    INNER JOIN sys.dm_hadr_availability_replica_cluster_states AS RCS ON RCS.group_id = AGC.group_id
    INNER JOIN sys.dm_hadr_availability_replica_states AS ARS ON ARS.replica_id = RCS.replica_id
    INNER JOIN sys.availability_group_listeners AS AGL ON AGL.group_id = ARS.group_id
    WHERE
        ARS.role_desc = 'PRIMARY' and RCS.replica_server_name = @@SERVERNAME
END
ELSE
BEGIN
    set @isPrimary = 1
END

IF @isPrimary = 1
BEGIN
    -- your script here        
END
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Further reading&lt;br /&gt;
&lt;a href="https://www.mssqltips.com/sqlservertip/3206/finding-primary-replicas-for-sql-server-2012-alwayson-availability-groups-with-powershell/"&gt;Finding Primary Replicas for SQL Server 2012 AlwaysOn Availability Groups with PowerShell&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/sql/t-sql/functions/servername-transact-sql?view=sql-server-2017"&gt;@@SERVERNAME&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/sys-fn-hadr-is-primary-replica-transact-sql?view=sql-server-2017"&gt;sys.fn&lt;em&gt;hadr&lt;/em&gt;is&lt;em&gt;primary&lt;/em&gt;replica&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2018/05/deep-compare/</id><title type="text">Deep compare</title><summary type="html">&lt;p&gt;Simple method for deep comparing objects in .net &lt;/p&gt;

</summary><published>2018-05-27T00:00:00Z</published><updated>2018-05-27T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2018/05/deep-compare/" /><content type="html">&lt;p&gt;Simple method for deep comparing objects in .net &lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;Requires &lt;a href="https://www.nuget.org/packages/CompareNETObjects/"&gt;CompareNETObjects nuget package&lt;/a&gt; from &lt;a href="https://github.com/GregFinzer/Compare-Net-Objects"&gt;GregFinzer&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;public static class ObjectExtensions
{
    public static bool IsDeeplyEqualTo(this object actual, object expected)
    {
        CompareLogic compareLogic = new CompareLogic();
        compareLogic.Config.MaxDifferences = 100;
        ComparisonResult result = compareLogic.Compare(expected, actual);
        if (result.AreEqual)
            return true;
        throw new ObjectsNotEqualException(result.DifferencesString);
    }
}
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2018/05/dotnet-core-integration-tests/</id><title type="text">.net core integration testing</title><summary type="html">&lt;p&gt;Links to good articles about .net core 2.1 integration testing&lt;/p&gt;

</summary><published>2018-05-27T00:00:00Z</published><updated>2018-05-27T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2018/05/dotnet-core-integration-tests/" /><content type="html">&lt;p&gt;Links to good articles about .net core 2.1 integration testing&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://www.hanselman.com/blog/EasierFunctionalAndIntegrationTestingOfASPNETCoreApplications.aspx"&gt;https://www.hanselman.com/blog/EasierFunctionalAndIntegrationTestingOfASPNETCoreApplications.aspx&lt;/a&gt; - Easier functional and integration testing of ASP.NET Core applications&lt;br /&gt;
&lt;a href="https://www.dotnetcurry.com/aspnet-core/1420/integration-testing-aspnet-core"&gt;https://www.dotnetcurry.com/aspnet-core/1420/integration-testing-aspnet-core&lt;/a&gt; - Integration Testing for ASP.NET Core Applications  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2018/04/project-management/</id><title type="text">Project management</title><summary type="html">&lt;p&gt;Bunch of links about managing software projects. &lt;/p&gt;

</summary><published>2018-04-17T00:00:00Z</published><updated>2018-04-17T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2018/04/project-management/" /><content type="html">&lt;p&gt;Bunch of links about managing software projects. &lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="http://www.sqale.org/"&gt;Assesing tech debt with SQALE&lt;/a&gt; and some recommended &lt;a href="http://www.sqale.org/tools"&gt;tools&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.smartinsights.com/digital-marketing-strategy/online-value-proposition/start-with-why-creating-a-value-proposition-with-the-golden-circle-model/"&gt;Start with Why: Creating a value proposition with the Golden Circle model&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action?language=en"&gt;Simon Sinek - how great leaders inspire action&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.amazon.com.au/Five-Dysfunctions-Team-Leadership-Fable/dp/0787960756"&gt;The Five Dysfunctions of a Team: A Leadership Fable - by Patrick M. Lencioni&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.audible.com.au/pd/The-Lean-Startup-Audiobook/B00FEZ4T08"&gt;The Lean Startup - by Eric Ries&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.dymocks.com.au/book/phoenix-project-by-gene-kim-and-kevin-behr-and-george-spafford-9781942788294"&gt;The Phoenix Project - by Gene Kim, Kevin Behr, George Spafford&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://monzo.com/blog/2018/06/29/engineering-principles"&gt;Engineering Principles at Monzo&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.booktopia.com.au/the-practice-of-management-peter-f-drucker/book/9780060878979.html"&gt;The Practice of Management - by Peter F Drucker‎&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2018/03/teamcity-and-octopus-ssis-package-pipeline/</id><title type="text">TeamCity and Octopus SSIS package pipeline</title><summary type="html">&lt;p&gt;Bunch of links about configuring CI/CD pipeline for SSIS packages&lt;/p&gt;

</summary><published>2018-03-28T00:00:00Z</published><updated>2018-03-28T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2018/03/teamcity-and-octopus-ssis-package-pipeline/" /><content type="html">&lt;p&gt;Bunch of links about configuring CI/CD pipeline for SSIS packages&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://kzhendev.wordpress.com/2015/10/12/building-and-packaging-sql-server-integration-services-projects-in-teamcity/"&gt;Building and packaging SSIS projects in TeamCity&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://kzhendev.wordpress.com/2015/10/14/deploying-ssis-projects-with-octopus-deploy/"&gt;Deploying SSIS projects with Octopus Deploy&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://thaddparker.wordpress.com/2017/10/01/auto-deploy-ssis-packages-with-vsts-and-octopus-deploy/"&gt;Auto-Deploy SSIS packages with VSTS and Octopus Deploy&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.sqlchick.com/entries/2015/1/4/parameterizing-connections-and-values-at-runtime-using-ssis-environment-variables"&gt;Parameterizing Connections and Values at Runtime Using SSIS Environment Variables&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.sqlchick.com/entries/2013/9/15/getting-started-with-parameters-variables-configurations-in.html"&gt;Getting Started with Parameters, Variables &amp;amp; Configurations in SSIS 2012&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.timmitchell.net/post/2016/11/28/a-better-way-to-execute-ssis-packages-with-t-sql/"&gt;A Better Way To Execute SSIS Packages With T-SQL&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://library.octopus.com/step-templates/bf005449-60c2-4746-8e07-8ba857f93605/actiontemplate-deploy-ispac-ssis-project-from-a-package"&gt;Octopus Deploy Library - Deploy ispac SSIS project from a package&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Installing and Executing SSIS packages with T-SQL&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;DECLARE @execution_id BIGINT
EXEC [SSISDB].[catalog].[create_execution] 
    @package_name = N'&amp;lt;package_name&amp;gt;.dtsx'
    , @project_name = N'&amp;lt;project_name&amp;gt;'
    , @folder_name = N'&amp;lt;folder_name&amp;gt;'
    , @use32bitruntime = False
    , @reference_id = NULL
    , @execution_id = @execution_id OUTPUT

-- System parameters
EXEC [SSISDB].[catalog].[set_execution_parameter_value] 
    @execution_id
    , @object_type = 50 -- System parameter
    , @parameter_name = N'&amp;lt;parameter_name&amp;gt;'
    , @parameter_value = &amp;lt;parameter_value&amp;gt;

-- Execute the package
EXEC [SSISDB].[catalog].[start_execution] @execution_id

-- Check package status, and fail script if the package failed
IF 7 &amp;lt;&amp;gt; (SELECT [status] FROM [SSISDB].[catalog].[executions] WHERE execution_id = @execution_id)
RAISERROR('The package failed. Check the SSIS catalog logs for more information', 16, 1)
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2018/03/joel-spolsky-on-managing-projects/</id><title type="text">Joel Spolsky on managing projects</title><summary type="html">&lt;p&gt;Bunch of links about managing software projects by Joel Spolsky. &lt;/p&gt;

</summary><published>2018-03-14T00:00:00Z</published><updated>2018-03-14T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2018/03/joel-spolsky-on-managing-projects/" /><content type="html">&lt;p&gt;Bunch of links about managing software projects by Joel Spolsky. &lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://www.joelonsoftware.com/2007/10/26/evidence-based-scheduling/"&gt;Evidence Based Scheduling&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/"&gt;The Joel Test: 12 Steps to Better Code&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/"&gt;Things You Should Never Do, Part I&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.joelonsoftware.com/2000/03/19/two-stories/"&gt;Two Stories&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.joelonsoftware.com/2006/08/07/three-management-methods-introduction/"&gt;Three Management Methods (Introduction)&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.joelonsoftware.com/2006/08/08/the-command-and-control-management-method/"&gt;The Command and Control Management Method&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.joelonsoftware.com/2006/08/09/the-econ-101-management-method/"&gt;The Econ 101 Management Method&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.joelonsoftware.com/2006/08/10/the-identity-management-method/"&gt;The Identity Management Method&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.joelonsoftware.com/2006/04/11/the-development-abstraction-layer-2/"&gt;The Development Abstraction Layer&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.joelonsoftware.com/2002/12/11/lord-palmerston-on-programming/"&gt;Lord Palmerston on Programming&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2018/02/it-projects-estimation/</id><title type="text">IT Projects Estimation</title><summary type="html" /><published>2018-02-06T00:00:00Z</published><updated>2018-02-06T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2018/02/it-projects-estimation/" /><content type="html">&lt;!--excerpt--&gt;

&lt;p&gt;&lt;img src="http://mateuszligeza.com/_cdn/20180206-project-estimation.png" alt="IT Project Estimatinon" /&gt;&lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2018/01/office-stretching-exercises/</id><title type="text">Office stretching exercises</title><summary type="html" /><published>2018-01-09T00:00:00Z</published><updated>2018-01-09T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2018/01/office-stretching-exercises/" /><content type="html">&lt;!--excerpt--&gt;

&lt;p&gt;&lt;img src="http://mateuszligeza.com/_cdn/20180109-stretching-exercises.png" alt="Office stretching exercises" /&gt;&lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2017/12/raspberry-pi-links/</id><title type="text">Raspberry pi links</title><summary type="html">&lt;p&gt;Bunch of links related to raspberry pi that I did not have much time to play with.&lt;/p&gt;

</summary><published>2017-12-05T00:00:00Z</published><updated>2017-12-05T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2017/12/raspberry-pi-links/" /><content type="html">&lt;p&gt;Bunch of links related to raspberry pi that I did not have much time to play with.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.raspberrypi.org/documentation/installation/"&gt;https://www.raspberrypi.org/documentation/installation/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://raspi.tv/2016/how-to-free-up-some-space-on-your-raspbian-sd-card-remove-wolfram-libreoffice"&gt;http://raspi.tv/2016/how-to-free-up-some-space-on-your-raspbian-sd-card-remove-wolfram-libreoffice&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.raspberrypi.org/blog/raspbian-stretch/"&gt;https://www.raspberrypi.org/blog/raspbian-stretch/&lt;/a&gt;  &lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.raspberrypi.org/blog/introducing-pixel/"&gt;https://www.raspberrypi.org/blog/introducing-pixel/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://opensource.com/article/17/12/raspberry-pi-cryptocurrency-mining"&gt;https://opensource.com/article/17/12/raspberry-pi-cryptocurrency-mining&lt;/a&gt; - Mining cryptocurrency with Raspberry Pi and Storj  &lt;/li&gt;
&lt;/ul&gt;
</content></entry><entry><id>http://mateuszligeza.com/2017/11/clean-query-cache/</id><title type="text">Clean query cache</title><summary type="html">&lt;p&gt;Clean query cache. Repost from &lt;a href="https://sqlserverperformance.wordpress.com/2009/12/28/fun-with-dbcc-freeproccache/"&gt;Glenn Berry's SQL Server Performance blog&lt;/a&gt;&lt;/p&gt;

</summary><published>2017-11-01T00:00:00Z</published><updated>2017-11-01T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2017/11/clean-query-cache/" /><content type="html">&lt;p&gt;Clean query cache. Repost from &lt;a href="https://sqlserverperformance.wordpress.com/2009/12/28/fun-with-dbcc-freeproccache/"&gt;Glenn Berry's SQL Server Performance blog&lt;/a&gt;&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;pre&gt;&lt;code&gt;-- Example 1 (Sledgehammer)
-- Remove all elements from the plan cache for the entire instance 
DBCC FREEPROCCACHE;

-- Flush the cache and suppress the regular completion message
-- "DBCC execution completed. If DBCC printed error messages, contact your system administrator." 
DBCC FREEPROCCACHE WITH NO_INFOMSGS;


-- Example 2 (Ballpeen hammer)
-- Remove all elements from the plan cache for one database  
-- Get DBID from one database name first
DECLARE @intDBID INT;
SET @intDBID = (SELECT [dbid] 
                FROM master.dbo.sysdatabases 
                WHERE name = 'AdventureWorks');

-- Flush the procedure cache for one database only
DBCC FLUSHPROCINDB (@intDBID);


-- Example 3 (Scalpel)
-- Remove one plan from the cache
-- Get the plan handle for a cached plan
SELECT cp.plan_handle, st.[text]
FROM sys.dm_exec_cached_plans AS cp 
CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS st
WHERE [text] LIKE N'%/* GetOnlineSearchResultsMonday %';

-- Remove the specific plan from the cache using the plan handle
DBCC FREEPROCCACHE (0x05000800F7BA926C40C15055070000000000000000000000);
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2017/10/find-queries-using-index/</id><title type="text">Find queries using index</title><summary type="html">&lt;p&gt;Find queries using index. Initially used to detect queries that were using eager spooling&lt;/p&gt;

</summary><published>2017-10-31T00:00:00Z</published><updated>2017-10-31T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2017/10/find-queries-using-index/" /><content type="html">&lt;p&gt;Find queries using index. Initially used to detect queries that were using eager spooling&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;can be used for index optimization as well&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;SELECT
querystats.plan_handle,
querystats.query_hash,
SUBSTRING(sqltext.text, (querystats.statement_start_offset / 2) + 1,
(CASE querystats.statement_end_offset
WHEN -1 THEN DATALENGTH(sqltext.text)
ELSE querystats.statement_end_offset
END - querystats.statement_start_offset) / 2 + 1) AS sqltext,
querystats.execution_count,
querystats.total_logical_reads,
querystats.total_logical_writes,
querystats.creation_time,
querystats.last_execution_time,
CAST(query_plan AS xml) as plan_xml
FROM sys.dm_exec_query_stats as querystats
CROSS APPLY sys.dm_exec_text_query_plan
(querystats.plan_handle, querystats.statement_start_offset, querystats.statement_end_offset)
as textplan
CROSS APPLY sys.dm_exec_sql_text(querystats.sql_handle) AS sqltext
WHERE
textplan.query_plan like '%missing%'
ORDER BY querystats.last_execution_time DESC
OPTION (RECOMPILE);
GO
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;further reading&lt;/p&gt;

&lt;p&gt;&lt;a href="https://littlekendra.com/2017/01/24/how-to-find-queries-using-an-index-and-queries-using-index-hints/"&gt;https://littlekendra.com/2017/01/24/how-to-find-queries-using-an-index-and-queries-using-index-hints/&lt;/a&gt; - How to Find Queries Using an Index&lt;br /&gt;
&lt;a href="https://sqlperformance.com/2013/02/t-sql-queries/halloween-problem-part-1"&gt;https://sqlperformance.com/2013/02/t-sql-queries/halloween-problem-part-1&lt;/a&gt; - The Halloween Problem&lt;br /&gt;
&lt;a href="https://www.red-gate.com/simple-talk/sql/learn-sql-server/operator-of-the-week-spools-eager-spool/"&gt;https://www.red-gate.com/simple-talk/sql/learn-sql-server/operator-of-the-week-spools-eager-spool/&lt;/a&gt; - Operator of the Week – Spools, Eager Spool&lt;br /&gt;
&lt;a href="https://www.itprotoday.com/sql-server/divide-and-conquer-halloween"&gt;https://www.itprotoday.com/sql-server/divide-and-conquer-halloween&lt;/a&gt; - Divide and Conquer Halloween  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2017/09/trying-to-understand-web-forms/</id><title type="text">Trying to understand webforms</title><summary type="html">&lt;p&gt;&lt;code&gt;Might be obsolete right now&lt;/code&gt; Used to get to know how to modernize web forms and mix it with some modern auth mechanisms&lt;/p&gt;

</summary><published>2017-09-20T00:00:00Z</published><updated>2017-09-20T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2017/09/trying-to-understand-web-forms/" /><content type="html">&lt;p&gt;&lt;code&gt;Might be obsolete right now&lt;/code&gt; Used to get to know how to modernize web forms and mix it with some modern auth mechanisms&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/api/system.web.security.formsauthenticationticket?redirectedfrom=MSDN&amp;amp;view=netframework-4.8"&gt;https://docs.microsoft.com/en-us/dotnet/api/system.web.security.formsauthenticationticket?redirectedfrom=MSDN&amp;amp;view=netframework-4.8&lt;/a&gt; - FormsAuthenticationTicket Class docs&lt;br /&gt;
&lt;a href="https://support.microsoft.com/en-us/help/910443/understanding-the-forms-authentication-ticket-and-cookie"&gt;https://support.microsoft.com/en-us/help/910443/understanding-the-forms-authentication-ticket-and-cookie&lt;/a&gt; - Understanding the Forms Authentication Ticket and Cookie&lt;br /&gt;
&lt;a href="https://leanpub.com/evolvinglegacyaspnetapplications"&gt;https://leanpub.com/evolvinglegacyaspnetapplications&lt;/a&gt; - Evolving ASP.net Applications&lt;br /&gt;
&lt;a href="https://www.davepaquette.com/archive/2013/12/30/so-you-inherited-an-asp-net-web-forms-application.aspx"&gt;https://www.davepaquette.com/archive/2013/12/30/so-you-inherited-an-asp-net-web-forms-application.aspx&lt;/a&gt; - So you inherited an ASP.NET Web Forms application&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/aspnet/identity/overview/getting-started/adding-aspnet-identity-to-an-empty-or-existing-web-forms-project"&gt;https://docs.microsoft.com/en-us/aspnet/identity/overview/getting-started/adding-aspnet-identity-to-an-empty-or-existing-web-forms-project&lt;/a&gt; - Adding ASP.NET Identity to an Empty or Existing Web Forms Project&lt;br /&gt;
&lt;a href="https://www.hanselman.com/blog/IntroducingASPNETFriendlyUrlsCleanerURLsEasierRoutingAndMobileViewsForASPNETWebForms.aspx"&gt;https://www.hanselman.com/blog/IntroducingASPNETFriendlyUrlsCleanerURLsEasierRoutingAndMobileViewsForASPNETWebForms.aspx&lt;/a&gt; - Introducing ASP.NET FriendlyUrls - cleaner URLs, easier Routing, and Mobile Views for ASP.NET Web Forms&lt;br /&gt;
&lt;a href="https://www.nuget.org/packages/Microsoft.AspNet.FriendlyUrls/"&gt;https://www.nuget.org/packages/Microsoft.AspNet.FriendlyUrls/&lt;/a&gt; - 
Microsoft.AspNet.FriendlyUrls&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/aspnet/web-forms/overview/getting-started/getting-started-with-aspnet-45-web-forms/"&gt;https://docs.microsoft.com/en-us/aspnet/web-forms/overview/getting-started/getting-started-with-aspnet-45-web-forms/&lt;/a&gt; - Getting Started with ASP.NET 4.5 Web Forms and Visual Studio 2013&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/aspnet/web-forms/overview/security/"&gt;https://docs.microsoft.com/en-us/aspnet/web-forms/overview/security/&lt;/a&gt; - Security, Authentication, and Authorization in ASP.NET Web Forms&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/20737578/asp-net-sessionid-owin-cookies-do-not-send-to-browser"&gt;https://stackoverflow.com/questions/20737578/asp-net-sessionid-owin-cookies-do-not-send-to-browser&lt;/a&gt; - ASP.NET_SessionId + OWIN Cookies do not send to browser&lt;br /&gt;
&lt;a href="https://blog.martincostello.com/ensuring-your-asp-net-website-is-secure/"&gt;https://blog.martincostello.com/ensuring-your-asp-net-website-is-secure/&lt;/a&gt; - Ensuring Your ASP.NET Website Is Secure&lt;br /&gt;
&lt;a href="https://rhastastudio.wordpress.com/2016/07/19/owin-authentication-and-session-store/"&gt;https://rhastastudio.wordpress.com/2016/07/19/owin-authentication-and-session-store/&lt;/a&gt; - OWIN Form Authentication and Session store&lt;br /&gt;
&lt;a href="https://brockallen.com/2013/10/24/a-primer-on-owin-cookie-authentication-middleware-for-the-asp-net-developer/"&gt;https://brockallen.com/2013/10/24/a-primer-on-owin-cookie-authentication-middleware-for-the-asp-net-developer/&lt;/a&gt; - A primer on OWIN cookie authentication middleware for the ASP.NET developer&lt;br /&gt;
&lt;a href="https://brockallen.com/2013/10/27/host-authentication-and-web-api-with-owin-and-active-vs-passive-authentication-middleware/"&gt;https://brockallen.com/2013/10/27/host-authentication-and-web-api-with-owin-and-active-vs-passive-authentication-middleware/&lt;/a&gt; - Host authentication and Web API with OWIN and active vs. passive authentication middleware&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/29075497/wrong-wsdl-url-in-webservice-asmxdisco-when-proxy-is-use"&gt;https://stackoverflow.com/questions/29075497/wrong-wsdl-url-in-webservice-asmxdisco-when-proxy-is-use&lt;/a&gt; - Wrong wsdl URL in webservice.asmx?disco when proxy is use  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2017/09/custom-identity-server-ef-migration-project/</id><title type="text">Custom identity server ef migration project</title><summary type="html">&lt;p&gt;&lt;code&gt;Might be obsolete right now&lt;/code&gt; Created for .net core 1.0.1&lt;/p&gt;

</summary><published>2017-09-19T00:00:00Z</published><updated>2017-09-19T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2017/09/custom-identity-server-ef-migration-project/" /><content type="html">&lt;p&gt;&lt;code&gt;Might be obsolete right now&lt;/code&gt; Created for .net core 1.0.1&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;pre&gt;&lt;code&gt;# Source
# https://identityserver.github.io/Documentation/docsv2/ef/migrations.html

# Enable migrations
Enable-Migrations -ProjectName IdentityServer.DbUp -ContextAssemblyName IdentityServer3.EntityFramework -ContextTypeName ScopeConfigurationDbContext -StartUpProjectName IdentityServer.DbUp -MigrationsDirectory Migrations\ScopeConfiguration -ConnectionString "&amp;lt;connection_string&amp;gt;" -ConnectionProviderName System.Data.SqlClient
Enable-Migrations -ProjectName IdentityServer.DbUp -ContextAssemblyName IdentityServer3.EntityFramework -ContextTypeName ClientConfigurationDbContext -StartUpProjectName IdentityServer.DbUp -MigrationsDirectory Migrations\ClientConfiguration -ConnectionString "&amp;lt;connection_string&amp;gt;" -ConnectionProviderName System.Data.SqlClient
Enable-Migrations -ProjectName IdentityServer.DbUp -ContextAssemblyName IdentityServer3.EntityFramework -ContextTypeName OperationalDbContext -StartUpProjectName IdentityServer.DbUp -MigrationsDirectory Migrations\OperationalConfiguration -ConnectionString "&amp;lt;connection_string&amp;gt;" -ConnectionProviderName System.Data.SqlClient

# Add migrations
Add-Migration -StartUpProjectName IdentityServer.DbUp -Name InitialCreate -ConfigurationTypeName IdentityServer.DbUp.Migrations.ScopeConfiguration.Configuration -ConnectionString "&amp;lt;connection_string&amp;gt;" -ConnectionProviderName System.Data.SqlClient
Add-Migration -StartUpProjectName IdentityServer.DbUp -Name InitialCreate -ConfigurationTypeName IdentityServer.DbUp.Migrations.ClientConfiguration.Configuration -ConnectionString "&amp;lt;connection_string&amp;gt;" -ConnectionProviderName System.Data.SqlClient
Add-Migration -StartUpProjectName IdentityServer.DbUp -Name InitialCreate -ConfigurationTypeName IdentityServer.DbUp.Migrations.OperationalConfiguration.Configuration -ConnectionString "&amp;lt;connection_string&amp;gt;" -ConnectionProviderName System.Data.SqlClient

#Custom directory
Add-Migration -Name InitialIdentityServerPersistedGrantDbMigration -Context PersistedGrantDbContext -OutputDir Migrations/PersistedGrantDb -StartupProject IdentityServer.DbUp
Add-Migration -Name InitialIdentityServerConfigurationDbMigration -Context ConfigurationDbContext -OutputDir Migrations/ConfigurationDb -StartupProject IdentityServer.DbUp
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;EF Core Links&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet#installation"&gt;https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet#installation&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell"&gt;https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://docs.identityserver.io/en/release/quickstarts/8_entity_framework.html"&gt;http://docs.identityserver.io/en/release/quickstarts/8&lt;em&gt;entity&lt;/em&gt;framework.html&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.michael-whelan.net/ef-core-101-migrations-in-separate-assembly/"&gt;http://www.michael-whelan.net/ef-core-101-migrations-in-separate-assembly/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://codingblast.com/entityframework-core-idesigntimedbcontextfactory/"&gt;https://codingblast.com/entityframework-core-idesigntimedbcontextfactory/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.learnentityframeworkcore.com/migrations/commands/pmc-commands"&gt;https://www.learnentityframeworkcore.com/migrations/commands/pmc-commands&lt;/a&gt;  &lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2017/08/import-certificate-chain/</id><title type="text">Import certificate chain</title><summary type="html">&lt;p&gt;Import certificate chain&lt;/p&gt;

</summary><published>2017-08-29T00:00:00Z</published><updated>2017-08-29T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2017/08/import-certificate-chain/" /><content type="html">&lt;p&gt;Import certificate chain&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;pre&gt;&lt;code&gt;#import cert chain
$p7b = '\\dc2012\CertEnroll\FoxDeployCAChain.p7b'
Import-Certificate -FilePath $p7b -CertStoreLocation Cert:\LocalMachine\Root
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;use&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$error[0].Exception.InnerException
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;to check exception details&lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2017/08/managing-iis-from-powershell/</id><title type="text">Managing IIS from powershell</title><summary type="html">&lt;p&gt;Managing IIS from powershell&lt;/p&gt;

</summary><published>2017-08-29T00:00:00Z</published><updated>2017-08-29T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2017/08/managing-iis-from-powershell/" /><content type="html">&lt;p&gt;Managing IIS from powershell&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;Start aspnet_state service&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;get-service | Where {$_.Name -eq 'aspnet_state'}
get-service | Where {$_.Name -eq 'aspnet_state'} | Start-Service
start-service aspnet_state
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Set custom app pool identity&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;get-module
get-module -ListAvailable
import-module webadministration
import-module iisadministration
$appPool= get-iisapppool DefaultAppPool
$appPool.ProcessModel.IdentityType
$appPool.ProcessModel.UserName = "domain\username"
$appPool.ProcessModel.Password = ""
$appPool.ProcessModel.IdentityType = 3 # or $appPool.ProcessModel.IdentityType = "SpecificUser"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Getting configuration information about a module &lt;a href="https://docs.microsoft.com/en-us/powershell/module/webadministration/get-webglobalmodule?view=win10-ps"&gt;docs&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;IIS:\&amp;gt; Get-WebGlobalModule -Name "UriCacheModule"
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2017/08/bunch-of-docker-links/</id><title type="text">Bunch of docker links and scripts</title><summary type="html">&lt;p&gt;Bunch of docker links and scripts&lt;/p&gt;

</summary><published>2017-08-28T00:00:00Z</published><updated>2017-08-28T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2017/08/bunch-of-docker-links/" /><content type="html">&lt;p&gt;Bunch of docker links and scripts&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://gist.github.com/g0t4/d5c9e446a51db3b591025fa2b75e99fc"&gt;Setting up a Docker Hub registry mirror on a Synology NAS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cklutz.github.io/2017/01/01/move-docker-images/"&gt;Moving the Docker image directory on Windows&lt;/a&gt; and &lt;a href="https://github.com/moby/moby/issues/26873"&gt;deleting old images folder&lt;/a&gt; with &lt;a href="https://github.com/moby/docker-ci-zap"&gt;magic utility&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create custom local domains for the docker images&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;function Update-DockerHosts()
{
    $processfile=$args[0]
    $defaultHostsFile = "C:\Windows\System32\drivers\etc\hosts"

    if ([string]::IsNullOrEmpty($processfile))
    {
        $processfile = $defaultHostsFile
    }
    if (-not (Test-Path $processFile))
    {
        Echo "File $processfile not found"
        return
    }
    $tmpfile=$processFile+".tmp"

    #
    # for all running docker containers
    #
    $containers = docker ps -q
    Foreach ($container in $containers)
    {
        Echo $container
        #
        # Extract the servicename and ipaddress
        #
        $servicename = (docker inspect --format '{{ .Config.Image }}' $container).split("/")[-1]
        $ipaddress = docker inspect --format '{{ .NetworkSettings.Networks.nat.IPAddress }}' $container

        Echo $servicename
        Echo $ipaddress

        #
        # if there is a service name and ipaddress
        #
    if ((-not ([string]::IsNullOrEmpty($servicename))) -And (-not ([string]::IsNullOrEmpty($ipaddress))))
    {       
            # remove the service name from the process file, and add it again
            get-content $processfile | select-string -notmatch ".*$servicename.*" | % {$_.ToString()} | echo &amp;gt; $tmpfile
            echo "$ipaddress`t$servicename.local" &amp;gt;&amp;gt; $tmpfile
            mv -Force $tmpfile $processfile
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Docker run on IIS&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;FROM microsoft/aspnet:4.6.2

COPY  obj/Publish/Website-Test /inetpub/wwwroot

RUN ECHO 'start-service aspnet_state' &amp;gt;&amp;gt; start.ps1

RUN ECHO 'C:\ServiceMonitor.exe w3svc' &amp;gt;&amp;gt; start.ps1

ENTRYPOINT .\start.ps1

EXPOSE 80
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Docker run on custom port on IIS&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;FROM microsoft/aspnet:4.6.2

WORKDIR /Website-Test

COPY  bin/Publish/ .

SHELL ["powershell"]

RUN Import-module IISAdministration; \
    New-IISSite -Name "Website-Test" -PhysicalPath C:\Website-Test -BindingInformation "*:8000:"

EXPOSE 8000
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Build and publish the dotnet core app for docker deployment&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;msbuild /p:DeployOnBuild=true /p:PublishProfile=Docker.pubxml
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2017/08/bit-operations/</id><title type="text">Turning Bits On or Off</title><summary type="html">&lt;p&gt;&lt;a href="https://www.oreilly.com/library/view/c-cookbook/0596003390/ch03s10.html"&gt;Original article&lt;/a&gt;&lt;/p&gt;

</summary><published>2017-08-15T00:00:00Z</published><updated>2017-08-15T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2017/08/bit-operations/" /><content type="html">&lt;p&gt;&lt;a href="https://www.oreilly.com/library/view/c-cookbook/0596003390/ch03s10.html"&gt;Original article&lt;/a&gt;&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;JIC copy&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You have a numeric value or an enumeration that contains bit flags. You need a method to turn on (set the bit to 1) or turn off (set the bit to 0) one or more of these bit flags. In addition, you also want a method to flip one or more bit flag values; that is, change the bit(s) to their opposite value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The following method turns one or more bits on:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;public static int TurnBitOn(int value, int bitToTurnOn)
{
    return (value | bitToTurnOn);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The following method turns one or more bits off:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;public static int TurnBitOff(int value, int bitToTurnOff)
{
    return (value &amp;amp; ~bitToTurnOff);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The following method flips a bit to its opposite value:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;public static int FlipBit(int value, int bitToFlip)
{
    return (value ^ bitToFlip);
}
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2017/08/linqpad-disable-database-initialization/</id><title type="text">Disable database initiatization in LinqPad</title><summary type="html">&lt;p&gt;&lt;a href="https://gist.github.com/josheinstein/10927687"&gt;Original code gist&lt;/a&gt;&lt;/p&gt;

</summary><published>2017-08-11T00:00:00Z</published><updated>2017-08-11T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2017/08/linqpad-disable-database-initialization/" /><content type="html">&lt;p&gt;&lt;a href="https://gist.github.com/josheinstein/10927687"&gt;Original code gist&lt;/a&gt;&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;JIC copy&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;public class MyDbContext : DbContext
{

    /// &amp;lt;summary&amp;gt;
    /// Initializes a new instance of the &amp;lt;see cref=“T:MyDbContext"/&amp;gt; class.
    /// &amp;lt;/summary&amp;gt;
    public MyDbContext( )
        : base( "DefaultConnection" )
    {
        // This must be called in the *instance* constructor
        // and not the static constructor as is normally done.
        DisableDatabaseInitialization( );
    }
    /// &amp;lt;summary&amp;gt;
    /// Calls the &amp;lt;see cref="T:Database.SetInitializer[T]"/&amp;gt; method using the concrete type of the
    /// current instance to disable the EF default behavior of creating a database schema that
    /// does not already exist.
    /// &amp;lt;/summary&amp;gt;
    /// &amp;lt;remarks&amp;gt;
    /// Typically, one would call &amp;lt;see cref="T:Database.SetInitializer[T]"/&amp;gt; with a compile-time type
    /// of the context class. However, if the context type is not sealed, it is possible that a
    /// subclass will be used instead, rendering the call to SetInitializer useless. This can be the
    /// case when using a EF data context assembly with LINQPad, which creates a subclass of the
    /// context class using the code typed into the interface. This can result in a database being
    /// created, even though the intent was to NOT create a database.
    /// This method uses reflection to call the SetInitializer method with the runtime type of the
    /// current instance. This should be called immediately in the instance constructor, before a
    /// connection is made to the underlying database server.
    /// &amp;lt;/remarks&amp;gt;
    private void DisableDatabaseInitialization( )
    {
        var databaseType = typeof( Database );
        var setInitializer = databaseType.GetMethod( "SetInitializer", BindingFlags.Static | BindingFlags.Public );
        var thisType = GetType( );
        var setInitializerT = setInitializer.MakeGenericMethod( thisType );
        setInitializerT.Invoke( null, new object[] { null } );
    }
}
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2017/07/dot-net-core-web-api-learning-plan/</id><title type="text">.net core web api learning plan</title><summary type="html">&lt;p&gt;&lt;code&gt;Probably obsolete right now&lt;/code&gt; .net core web api learning plan&lt;/p&gt;

</summary><published>2017-07-14T00:00:00Z</published><updated>2017-07-14T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2017/07/dot-net-core-web-api-learning-plan/" /><content type="html">&lt;p&gt;&lt;code&gt;Probably obsolete right now&lt;/code&gt; .net core web api learning plan&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.pluralsight.com/courses/asp-dotnet-core-api-building-first"&gt;https://www.pluralsight.com/courses/asp-dotnet-core-api-building-first&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.pluralsight.com/courses/asp-dot-net-core-security-understanding"&gt;https://www.pluralsight.com/courses/asp-dot-net-core-security-understanding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.pluralsight.com/courses/docker-images-containers-aspdotnet-core"&gt;https://www.pluralsight.com/courses/docker-images-containers-aspdotnet-core&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.pluralsight.com/courses/containers-images-big-picture"&gt;https://www.pluralsight.com/courses/containers-images-big-picture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://app.pluralsight.com/library/courses/deployment-pipeline-aspdotnet-core-docker/table-of-contents"&gt;https://app.pluralsight.com/library/courses/deployment-pipeline-aspdotnet-core-docker/table-of-contents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://app.pluralsight.com/library/courses/docker-swarm-mode-getting-started/table-of-contents"&gt;https://app.pluralsight.com/library/courses/docker-swarm-mode-getting-started/table-of-contents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://app.pluralsight.com/library/courses/asp-dotnet-core-oauth2-openid-connect-securing/table-of-contents"&gt;https://app.pluralsight.com/library/courses/asp-dotnet-core-oauth2-openid-connect-securing/table-of-contents&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content></entry><entry><id>http://mateuszligeza.com/2016/12/windows-10-license-and-product-key/</id><title type="text">How to check your windows 10 license and product key</title><summary type="html">&lt;p&gt;When it comes to purchasing licenses for Windows there are a number of different channels that you can purchase through. The most common license types are Retail (FPP (Full Packaged Product)), OEM (Original Equipment Manufacturer), and Volume Licensing. Each Windows license type confers rights and imposes restrictions based on the &lt;a href="https://www.microsoft.com/en-us/useterms"&gt;Microsoft Software License Terms&lt;/a&gt;.&lt;/p&gt;

</summary><published>2016-12-10T00:00:00Z</published><updated>2016-12-10T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2016/12/windows-10-license-and-product-key/" /><content type="html">&lt;p&gt;When it comes to purchasing licenses for Windows there are a number of different channels that you can purchase through. The most common license types are Retail (FPP (Full Packaged Product)), OEM (Original Equipment Manufacturer), and Volume Licensing. Each Windows license type confers rights and imposes restrictions based on the &lt;a href="https://www.microsoft.com/en-us/useterms"&gt;Microsoft Software License Terms&lt;/a&gt;.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;table&gt;
    &lt;tr&gt;
        &lt;th&gt;License Type&lt;/th&gt;
        &lt;th&gt;Description&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Retail&lt;/td&gt;
        &lt;td&gt;This when you buy a Full Packaged Product (FPP), commonly known as a "boxed copy", of Windows from a retail merchant or purchases Windows online from the Microsoft Store. Product keys can be transferred to another PC.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;OEM&lt;/td&gt;
        &lt;td&gt;Product keys are issued by the original equipment manufacturer (OEM) and are not-for-resale and may not be transferred to another computer. They may, however, be transferred with the computer if the computer is transferred to new ownership. If the OEM PC came preinstalled with Windows 8 or Windows 10, then the product key will be embedded in the UEFI firmware chip.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Volume&lt;/td&gt;
        &lt;td&gt;KMS Client and Volume MAK product keys, are volume license keys that are not-for-resale. They are issued by organizations for use on client computers associated in some way with the organization. Volume license keys may not be transferred with the computer if the computer changes ownership. This form of licensing typically applies for business, government and educational institutions, with prices for volume licensing varying depending on the type, quantity and applicable subscription-term. A volume license key (VLK) denotes the product key used when installing software licensed in bulk, which allows a single product key to be used for multiple installations. For example, the Windows Enterprise edition is activated with a volume license key.&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

&lt;blockquote&gt;
  &lt;p&gt;Original Source: &lt;a href="http://www.tenforums.com/tutorials/49586-windows-license-type-determine-if-oem-retail-volume.html"&gt;Windows 10 Forums&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Command to check license type:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;slmgr -dli
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you have Retail version of Windows you will get following information&lt;/p&gt;

&lt;p&gt;&lt;img src="http://mateuszligeza.com/_cdn/20161210-retail-license.png" alt="Retail License" /&gt;&lt;/p&gt;

&lt;p&gt;The partial produckt key returned for this license type does not com from your actual product key - it comes from one of the generic Microsoft keys&lt;/p&gt;

&lt;table&gt;
    &lt;tr&gt;
        &lt;td&gt;Windows 10 Home&lt;/td&gt;
        &lt;td&gt;YTMG3-N6DKC-DKB77-7M9GH-8HVX7&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Windows 10 Home SL&lt;/td&gt;
        &lt;td&gt;BT79Q-G7N6G-PGBYW-4YWX6-6F4BT&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Windows 10 Pro&lt;/td&gt;
        &lt;td&gt;VK7JG-NPHTM-C97JM-9MPGT-3V66T&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Windows 10 Pro VL-MAK&lt;/td&gt;
        &lt;td&gt;QJNXR-7D97Q-K7WH4-RYWQ8-6MT6Y &lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

&lt;blockquote&gt;
  &lt;p&gt;Original Source: &lt;a href="https://www.reddit.com/r/Windows10/comments/3f1r4y/psa_to_find_your_windows_10_key_follow_this_guide/"&gt;Reddit&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For OEM version you will get&lt;/p&gt;

&lt;p&gt;&lt;img src="http://mateuszligeza.com/_cdn/20161210-oem-license.png" alt="OEM License" /&gt;&lt;/p&gt;

&lt;p&gt;Command to check Windows 10 product key&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wmic path softwarelicensingservice get OA3xOriginalProductKey
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;For retail version&lt;/p&gt;

&lt;p&gt;&lt;img src="http://mateuszligeza.com/_cdn/20161210-retail-key.png" alt="Retail Key" /&gt;&lt;/p&gt;

&lt;p&gt;For oem version&lt;/p&gt;

&lt;p&gt;&lt;img src="http://mateuszligeza.com/_cdn/20161210-oem-key.png" alt="OEM Key" /&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Original Source: &lt;a href="http://www.thewindowsclub.com/find-windows-product-key"&gt;The Windows Club&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content></entry><entry><id>http://mateuszligeza.com/2016/11/migrating-from-tfvc-to-git/</id><title type="text">Migrating from TFVC to git</title><summary type="html">&lt;p&gt;In case you would like to move old projects from TFVC to git.&lt;/p&gt;

</summary><published>2016-11-19T00:00:00Z</published><updated>2016-11-19T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2016/11/migrating-from-tfvc-to-git/" /><content type="html">&lt;p&gt;In case you would like to move old projects from TFVC to git.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;There is nice command line utility &lt;a href="https://github.com/git-tfs/git-tfs"&gt;git-tfs&lt;/a&gt; that allows you to &lt;a href="https://github.com/git-tfs/git-tfs/blob/master/doc/usecases/migrate_tfs_to_git.md"&gt;move projects source history from tfvc to git&lt;/a&gt; (it also allows you to do whole bunch of other things).&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;This post requires &lt;a href="https://chocolatey.org/install"&gt;Chocolatey&lt;/a&gt; to be installed on your system&lt;/p&gt;
&lt;/blockquote&gt;

&lt;pre&gt;&lt;code&gt;#install git-tfs with chocolatey
choco install gittfs -y

#get all project branches to git repository 
#git-tfs clone "&amp;lt;your tfs collection url&amp;gt;" "&amp;lt;your tfs project branch&amp;gt;" --branches=all
git-tfs clone "https://mateuszligeza.visualstudio.com/DefaultCollection" "$/BranchingTest/master" --branches=all

#add new remote for repository
git remote add origin https://mateuszligeza.visualstudio.com/DefaultCollection/_git/BranchingTestGit

#push all local branches to origin
git push -u origin --all
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2016/11/remote-working-tips-and-tricks/</id><title type="text">Remote working tips and tricks</title><summary type="html">&lt;p&gt;Bunch of configuration tips that make remoting to the servers more pleasant.&lt;/p&gt;

</summary><published>2016-11-12T00:00:00Z</published><updated>2016-11-12T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2016/11/remote-working-tips-and-tricks/" /><content type="html">&lt;p&gt;Bunch of configuration tips that make remoting to the servers more pleasant.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;Disable annoying Server Manager window on Windows Server 2008&lt;/p&gt;

&lt;p&gt;&lt;img src="http://mateuszligeza.com/_cdn/20161112-remote-desktop-config-winsrv2008.PNG" alt="disable server manager window" /&gt;&lt;/p&gt;

&lt;p&gt;Disable annoying Server Manager window on Windows Server 2012&lt;/p&gt;

&lt;p&gt;&lt;img src="http://mateuszligeza.com/_cdn/20161112-remote-desktop-config-winsrv2012.png" alt="disable server manager window" /&gt;&lt;/p&gt;

&lt;p&gt;Enable remote desktop on all screens and hide blue connection bar from the top.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://mateuszligeza.com/_cdn/20161119-remote-desktop-display-config.png" alt="Remote Resktop Display configuration" /&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;To get back to your desktop when you don't have the connection bar use &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;Pause/Break&lt;/kbd&gt;. On laptops that don't have the &lt;kbd&gt;Pause/Break&lt;/kbd&gt; key you can use &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;Fn&lt;/kbd&gt;+&lt;kbd&gt;B&lt;/kbd&gt; it apparently works on dell and lenovo PCs. You can also use &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;Home&lt;/kbd&gt; to show the connection bar.&lt;/p&gt;
  
  &lt;p&gt;On remote desktop &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;Delete&lt;/kbd&gt; shourtcut is replaced with &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;End&lt;/kbd&gt;&lt;/p&gt;
  
  &lt;p&gt;other shourtcuts can be found &lt;a href="http://windowsitpro.com/windows-server/top-10-remote-desktop-keyboard-shortcuts"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content></entry><entry><id>http://mateuszligeza.com/2016/05/feature-driven-architecture-reading-list/</id><title type="text">Feature driven architecture reading list</title><summary type="html">&lt;p&gt;List of articles, videos and repositories related to feature driven architecture &lt;/p&gt;

</summary><published>2016-05-08T00:00:00Z</published><updated>2016-05-08T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2016/05/feature-driven-architecture-reading-list/" /><content type="html">&lt;p&gt;List of articles, videos and repositories related to feature driven architecture &lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://lostechies.com/jimmybogard/2015/07/02/ndc-talk-on-solid-in-slices-not-layers-video-online/"&gt;Jimmy Bogard blog post: NDC talk on SOLID in slices not layers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://vimeo.com/131633177"&gt;Jimmy Bogard vimeo: SOLID Architecture in Slices not Layers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lostechies.com/jimmybogard/2015/05/05/cqrs-with-mediatr-and-automapper/"&gt;Jimmy Bogard blog post: CQRS with MediatR and AutoMapper&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lostechies.com/jimmybogard/2014/09/09/tackling-cross-cutting-concerns-with-a-mediator-pipeline/"&gt;Jimmy Bogard blog post: Tackling cross-cutting concerns with a mediator pipeline&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lostechies.com/jimmybogard/2014/05/13/a-better-domain-events-pattern/"&gt;Jimmy Bogard blog post: A better domain events pattern&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lostechies.com/jimmybogard/2016/04/29/validation-inside-or-outside-entities/"&gt;Jimmy Bogard blog post: Validation inside or outside entities?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lostechies.com/jimmybogard/2015/01/15/combating-the-lava-layer-anti-pattern-with-rolling-refactoring/"&gt;Jimmy Bogard blog post: Combating the lava-layer anti-pattern with rolling refactoring&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/jbogard/MediatR"&gt;Jimmy Bogard github repository: MediatR&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/uglybugger/DDDBrisbane2015"&gt;Andrew Harcourt github repository: Mediator implementation from DDD Brisbane 2015 talk&lt;/a&gt;&lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2016/05/pci-and-tls/</id><title type="text">PCI 3.1 and TLS 1.2</title><summary type="html">&lt;p&gt;The newest revision of the &lt;a href="https://www.pcisecuritystandards.org/"&gt;PCI Security Standards Council&lt;/a&gt; policy, &lt;a href="https://www.pcisecuritystandards.org/documents/PCI_DSS_v3-1.pdf"&gt;PCI-DSS 3.1&lt;/a&gt;, establishes a new baseline for strong cryptography, specifically TLS (formerly SSL), required to secure payment card related traffic – TLS 1.2.&lt;/p&gt;

&lt;p&gt;This post covers PCI recommendations, information how to check your current SSL/TLS configuration and how to prepare your .NET applications for TLS 1.2&lt;/p&gt;

</summary><published>2016-05-08T00:00:00Z</published><updated>2016-05-08T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2016/05/pci-and-tls/" /><content type="html">&lt;p&gt;The newest revision of the &lt;a href="https://www.pcisecuritystandards.org/"&gt;PCI Security Standards Council&lt;/a&gt; policy, &lt;a href="https://www.pcisecuritystandards.org/documents/PCI_DSS_v3-1.pdf"&gt;PCI-DSS 3.1&lt;/a&gt;, establishes a new baseline for strong cryptography, specifically TLS (formerly SSL), required to secure payment card related traffic – TLS 1.2.&lt;/p&gt;

&lt;p&gt;This post covers PCI recommendations, information how to check your current SSL/TLS configuration and how to prepare your .NET applications for TLS 1.2&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;h3&gt;Recommendations&lt;/h3&gt;

&lt;p&gt;CloudFlare page that tracks PCI 3.1 and TLS 1.2 announcements and summarize recommendations:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://support.cloudflare.com/hc/en-us/articles/205043158-PCI-3-1-and-TLS-1-2"&gt;https://support.cloudflare.com/hc/en-us/articles/205043158-PCI-3-1-and-TLS-1-2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PCI documents library&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.pcisecuritystandards.org/document_library?category=pcidss&amp;amp;document=pci_dss"&gt;https://www.pcisecuritystandards.org/document&lt;em&gt;library?category=pcidss&amp;amp;document=pci&lt;/em&gt;dss&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PCI document summarizing information regarding migration from SSL and early TLS versions to TLS 1.2&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.pcisecuritystandards.org/documents/Migrating_from_SSL_Early_TLS_Information%20Supplement_v1.pdf"&gt;https://www.pcisecuritystandards.org/documents/Migrating&lt;em&gt;from&lt;/em&gt;SSL&lt;em&gt;Early&lt;/em&gt;TLS&lt;em&gt;Information%20Supplement&lt;/em&gt;v1.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NIST TLS recommendations&lt;/p&gt;

&lt;p&gt;&lt;a href="http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r1.pdf"&gt;http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r1.pdf&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Check your configuration&lt;/h3&gt;

&lt;p&gt;You can use &lt;a href="https://www.ssllabs.com/ssltest/"&gt;Qualys SSL labs&lt;/a&gt; to check you SSL/TLS certificate information. This tool is used by &lt;a href="https://www.troyhunt.com/"&gt;Troy Hunt&lt;/a&gt; in his various articles, for example: &lt;a href="https://www.troyhunt.com/do-you-really-want-bank-grade-security/"&gt;Do you really want “bank grade” security in your SSL? Here’s how Aussie banks fare&lt;/a&gt;, &lt;a href="https://www.troyhunt.com/disabling-ssl-3-in-azure-websites-and/"&gt;Disabling SSL 3 in Azure websites&lt;/a&gt;, &lt;a href="https://www.troyhunt.com/everything-you-need-to-know-about/"&gt;Everything you need to know about the POODLE SSL bug&lt;/a&gt; and &lt;a href="https://www.troyhunt.com/troys-ultimate-list-of-security-links/"&gt;Troy’s ultimate list of security links&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To check your server or your pc SSL/TLS configuration on Windows you can use &lt;a href="https://support.microsoft.com/en-us/kb/245030"&gt;Windows Registry&lt;/a&gt; directly or use this free &lt;a href="https://www.nartac.com/Products/IISCrypto"&gt;IIS Crypto&lt;/a&gt; tool that provides GUI for all those settings.&lt;/p&gt;

&lt;h3&gt;Configure your apps&lt;/h3&gt;

&lt;p&gt;In order to configure your .NET apps to support TLS 1.2 you will have to update your .NET framework to version 4.5 and run following code when application starts&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You can allow multiple versions of the SSL/TLS protocol at once:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You can also change Windows Registry settings to overrite default behaviour, but I find the code version more suitable.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 
Value: SchUseStrongCrypto 
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;With windows registry based solution you need to change different keys for 32 and 64 .NET versions and you introduce external dependency to your app.&lt;/p&gt;

&lt;p&gt;More information can be found in &lt;a href="http://stackoverflow.com/questions/28286086/default-securityprotocol-in-net-4-5"&gt;this StackOverflow article&lt;/a&gt; and in following posts from &lt;a href="http://johnlouros.com/"&gt;John Louros&lt;/a&gt; blog: &lt;a href="http://johnlouros.com/blog/enabling-strong-cryptography-for-all-dot-net-applications"&gt;Enabling strong cryptography for all .Net applications&lt;/a&gt;, &lt;a href="http://johnlouros.com/blog/disabling-cryptographic-protocols-for-pci-compliance"&gt;Disabling cryptographic protocols for PCI compliance (focused on SSL 3.0 and TLS 1.0)&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; Retargetting nuget packages&lt;br /&gt;
  You may find following StackOverflow article handy during .NET framework version change: &lt;a href="http://stackoverflow.com/questions/12006991/retargeting-solution-from-net-4-0-to-4-5-how-to-retarget-the-nuget-packages"&gt;Retargeting solution from .Net 4.0 to 4.5 - how to retarget the NuGet packages?&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content></entry><entry><id>http://mateuszligeza.com/2016/05/troy-hunt-links/</id><title type="text">My favourite Troy Hunt blog posts</title><summary type="html">&lt;p&gt;Links to &lt;a href="https://www.troyhunt.com/"&gt;Troy Hunt&lt;/a&gt; blog posts&lt;/p&gt;

</summary><published>2016-05-08T00:00:00Z</published><updated>2016-05-08T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2016/05/troy-hunt-links/" /><content type="html">&lt;p&gt;Links to &lt;a href="https://www.troyhunt.com/"&gt;Troy Hunt&lt;/a&gt; blog posts&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;&lt;a href="https://www.troyhunt.com/troys-ultimate-list-of-security-links/"&gt;Troy’s ultimate list of security links&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.troyhunt.com/10-ways-to-make-your-net-projects-play/"&gt;10 ways to make your .NET projects play nice with others&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.troyhunt.com/10-commandments-of-good-source-control/"&gt;The 10 commandments of good source control management&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.troyhunt.com/azure-functions-in-practice/"&gt;Azure Functions in practice&lt;/a&gt;&lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/drafts/2016/03/aspnet5-on-windows/</id><title type="text">ASP.NET 5 on Windows</title><summary type="html">&lt;p&gt;&lt;a href="https://docs.asp.net/en/latest/getting-started/installing-on-windows.html#install-asp-net-5-from-the-command-line"&gt;Original post&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;To be able to run commands you should have ExecutionPolicy set to unrestricted. You can go to administrator powershell console and check your execution policy with&lt;/p&gt;
  
  &lt;p&gt;Get-ExecutionPolicy&lt;/p&gt;
  
  &lt;p&gt;command and change it with&lt;/p&gt;
  
  &lt;p&gt;Set-ExecutionPolicy unrestricted&lt;/p&gt;
  
  &lt;p&gt;to go back to defaults use&lt;/p&gt;
  
  &lt;p&gt;Set-ExecutionPolicy restricted&lt;/p&gt;
  
  &lt;p&gt;You can also wrap your commands with&lt;/p&gt;
  
  &lt;p&gt;powershell -NoProfile -ExecutionPolicy unrestricted -Command "&amp;amp;{&lt;command_body&gt;}"&lt;/p&gt;
  
  &lt;p&gt;for example&lt;/p&gt;
  
  &lt;p&gt;powershell -NoProfile -ExecutionPolicy unrestricted -Command "&amp;amp;{iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Install DNVM&lt;/p&gt;

&lt;p&gt;iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))    &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install .NET Core&lt;/p&gt;

&lt;p&gt;dnvm upgrade -r coreclr&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
  &lt;p&gt;Nancy works only with clr at the moment so if you want to use it run&lt;/p&gt;
  
  &lt;p&gt;dnvm upgrade -r clr&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Install Yeoman and Yeoman asp template&lt;/p&gt;

&lt;p&gt;//if you need to install npm use chocolatey command
//choco install nodejs.install -y&lt;/p&gt;

&lt;p&gt;npm install -g yo generator-aspnet&lt;/p&gt;

&lt;p&gt;//if you will be using bower and gulp install them first
//npm install bower gulp  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generate code from template&lt;/p&gt;

&lt;p&gt;yo aspnet&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to created folder&lt;/p&gt;

&lt;p&gt;cd &lt;project_folder&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Restore packages&lt;/p&gt;

&lt;p&gt;dnu restore&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run website&lt;/p&gt;

&lt;p&gt;dnx web&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
</summary><published>2016-03-30T00:00:00Z</published><updated>2016-03-30T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/drafts/2016/03/aspnet5-on-windows/" /><content type="html">&lt;p&gt;&lt;a href="https://docs.asp.net/en/latest/getting-started/installing-on-windows.html#install-asp-net-5-from-the-command-line"&gt;Original post&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;To be able to run commands you should have ExecutionPolicy set to unrestricted. You can go to administrator powershell console and check your execution policy with&lt;/p&gt;
  
  &lt;p&gt;Get-ExecutionPolicy&lt;/p&gt;
  
  &lt;p&gt;command and change it with&lt;/p&gt;
  
  &lt;p&gt;Set-ExecutionPolicy unrestricted&lt;/p&gt;
  
  &lt;p&gt;to go back to defaults use&lt;/p&gt;
  
  &lt;p&gt;Set-ExecutionPolicy restricted&lt;/p&gt;
  
  &lt;p&gt;You can also wrap your commands with&lt;/p&gt;
  
  &lt;p&gt;powershell -NoProfile -ExecutionPolicy unrestricted -Command "&amp;amp;{&lt;command_body&gt;}"&lt;/p&gt;
  
  &lt;p&gt;for example&lt;/p&gt;
  
  &lt;p&gt;powershell -NoProfile -ExecutionPolicy unrestricted -Command "&amp;amp;{iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Install DNVM&lt;/p&gt;

&lt;p&gt;iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))    &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install .NET Core&lt;/p&gt;

&lt;p&gt;dnvm upgrade -r coreclr&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
  &lt;p&gt;Nancy works only with clr at the moment so if you want to use it run&lt;/p&gt;
  
  &lt;p&gt;dnvm upgrade -r clr&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Install Yeoman and Yeoman asp template&lt;/p&gt;

&lt;p&gt;//if you need to install npm use chocolatey command
//choco install nodejs.install -y&lt;/p&gt;

&lt;p&gt;npm install -g yo generator-aspnet&lt;/p&gt;

&lt;p&gt;//if you will be using bower and gulp install them first
//npm install bower gulp  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generate code from template&lt;/p&gt;

&lt;p&gt;yo aspnet&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to created folder&lt;/p&gt;

&lt;p&gt;cd &lt;project_folder&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Restore packages&lt;/p&gt;

&lt;p&gt;dnu restore&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run website&lt;/p&gt;

&lt;p&gt;dnx web&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
</content></entry><entry><id>http://mateuszligeza.com/2016/03/deleting-directories-with-long-paths/</id><title type="text">Delete directories with long paths</title><summary type="html">&lt;p&gt;If you ever get this error &lt;code&gt;The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.&lt;/code&gt; this is what you can do to solve it.&lt;/p&gt;

</summary><published>2016-03-30T00:00:00Z</published><updated>2016-03-30T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2016/03/deleting-directories-with-long-paths/" /><content type="html">&lt;p&gt;If you ever get this error &lt;code&gt;The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.&lt;/code&gt; this is what you can do to solve it.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;br /&gt;
  new versions of Windows 10 doesn't have the path length limit&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Open powershell console, create empty directory and use robocopy to mirror it content to directory you want to delete. Robocopy will delete all files from desired directory and then you will be able to delete both directories.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;md &amp;lt;new_empty_dir&amp;gt;
robocopy &amp;lt;new_empty_dir&amp;gt; &amp;lt;dir_you_want_to_delete&amp;gt; /MIR
rm &amp;lt;new_empty_dir&amp;gt; &amp;lt;dir_you_want_to_delete&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Command reference:
&lt;a href="https://technet.microsoft.com/en-us/library/hh849795.aspx"&gt;md&lt;/a&gt;
&lt;a href="https://technet.microsoft.com/en-au/library/cc733145.aspx"&gt;robocopy&lt;/a&gt;
&lt;a href="https://technet.microsoft.com/en-us/library/hh849765.aspx"&gt;rm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also invoke cmd command from powershell console (some claim it not always work)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Cmd /C "rmdir /S /Q &amp;lt;dir_you_want_to_delete&amp;gt;"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Original source: &lt;a href="http://stackoverflow.com/questions/16392765/powershell-delete-directory-regardless-of-260-char-limit"&gt;StackOverflow&lt;/a&gt;&lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2016/03/windows-keyboard-shortcuts/</id><title type="text">Windows keyboard shortcuts</title><summary type="html">&lt;p&gt;Usefull shortcut reference. All shortcurts available &lt;a href="http://windows.microsoft.com/en-au/windows-10/keyboard-shortcuts"&gt;here&lt;/a&gt;&lt;/p&gt;

</summary><published>2016-03-30T00:00:00Z</published><updated>2016-03-30T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2016/03/windows-keyboard-shortcuts/" /><content type="html">&lt;p&gt;Usefull shortcut reference. All shortcurts available &lt;a href="http://windows.microsoft.com/en-au/windows-10/keyboard-shortcuts"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;| Keyboard shortcut | meaning |
| --- | --- |
| &lt;kbd&gt;WIN&lt;/kbd&gt; + &lt;kbd&gt;CTRL&lt;/kbd&gt; + &lt;kbd&gt;LEFT/RIGHT&lt;/kbd&gt; | Switch to previous or next desktop |
| &lt;kbd&gt;WIN&lt;/kbd&gt; + &lt;kbd&gt;CTRL&lt;/kbd&gt; + &lt;kbd&gt;D&lt;/kbd&gt; | Create a new desktop |
| &lt;kbd&gt;WIN&lt;/kbd&gt; + &lt;kbd&gt;CTRL&lt;/kbd&gt; + &lt;kbd&gt;F4&lt;/kbd&gt; | Close the current desktop |
| &lt;kbd&gt;WIN&lt;/kbd&gt; + &lt;kbd&gt;TAB&lt;/kbd&gt; | Launch task view |
| &lt;kbd&gt;WIN&lt;/kbd&gt; + &lt;kbd&gt;D&lt;/kbd&gt; | Show desktop |
| &lt;kbd&gt;WIN&lt;/kbd&gt; + &lt;kbd&gt;L&lt;/kbd&gt; | Lock your PC |
| &lt;kbd&gt;WIN&lt;/kbd&gt; + &lt;kbd&gt;UP/DOWN/RIGHT/LEFT&lt;/kbd&gt; | Move active window around |
| &lt;kbd&gt;ALT&lt;/kbd&gt; + &lt;kbd&gt;TAB&lt;/kbd&gt; | Switch between windows |
| &lt;kbd&gt;WIN&lt;/kbd&gt; | open search bar |
| &lt;kbd&gt;WIN&lt;/kbd&gt; + &lt;kbd&gt;R&lt;/kbd&gt; | open "run" window |
| &lt;kbd&gt;WIN&lt;/kbd&gt; + &lt;kbd&gt;.&lt;/kbd&gt; | open emoji keyboard |
| &lt;kbd&gt;WIN&lt;/kbd&gt; + &lt;kbd&gt;E&lt;/kbd&gt; | open explorer |
| &lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Alt&lt;/kbd&gt; + &lt;kbd&gt;Home&lt;/kbd&gt; | show the connection bar on remote desktop |
| &lt;kbd&gt;WIN&lt;/kbd&gt; + &lt;kbd&gt;CTRL&lt;/kbd&gt; + &lt;kbd&gt;SHIFT&lt;/kbd&gt; + &lt;kbd&gt;B&lt;/kbd&gt; | restart graphic driver (in case of black screen after sleep) |
| &lt;kbd&gt;WIN&lt;/kbd&gt; + &lt;kbd&gt;SHIFT&lt;/kbd&gt; + &lt;kbd&gt;S&lt;/kbd&gt; | open snipping tool |&lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2016/03/mirroring-drives-with-robocopy/</id><title type="text">Mirroring drives with robocopy</title><summary type="html">&lt;p&gt;Following command can be used to mirror content between drives&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;robocopy e:\ z:\ /mir /xd "`$RECYCLE.BIN" "System Volume Information"
//  usage
//  robocopy &amp;lt;source&amp;gt; &amp;lt;destination&amp;gt;  [&amp;lt;File&amp;gt;[ ...]] [&amp;lt;Options&amp;gt;]
//  /mir                    - create exact mirror
//  /xd &amp;lt;directory&amp;gt;[...]    - exclude directories
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;All parameters reference available in &lt;a href="https://technet.microsoft.com/en-au/library/cc733145.aspx"&gt;official documentation&lt;/a&gt;&lt;/p&gt;
</summary><published>2016-03-28T00:00:00Z</published><updated>2016-03-28T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2016/03/mirroring-drives-with-robocopy/" /><content type="html">&lt;p&gt;Following command can be used to mirror content between drives&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;robocopy e:\ z:\ /mir /xd "`$RECYCLE.BIN" "System Volume Information"
//  usage
//  robocopy &amp;lt;source&amp;gt; &amp;lt;destination&amp;gt;  [&amp;lt;File&amp;gt;[ ...]] [&amp;lt;Options&amp;gt;]
//  /mir                    - create exact mirror
//  /xd &amp;lt;directory&amp;gt;[...]    - exclude directories
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;All parameters reference available in &lt;a href="https://technet.microsoft.com/en-au/library/cc733145.aspx"&gt;official documentation&lt;/a&gt;&lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2016/03/using-rawgit-as-cdn/</id><title type="text">Using rawgit as CDN</title><summary type="html">&lt;p&gt;RawGit can turn github repo into CDN&lt;/p&gt;

</summary><published>2016-03-23T00:00:00Z</published><updated>2016-03-23T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2016/03/using-rawgit-as-cdn/" /><content type="html">&lt;p&gt;RawGit can turn github repo into CDN&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;WARNING&lt;/strong&gt;&lt;br /&gt;
  This project is no longer maintained&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Recommended alternatives:&lt;br /&gt;
&lt;a href="https://unpkg.com/"&gt;https://unpkg.com/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://codesandbox.io/"&gt;https://codesandbox.io/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.jsdelivr.com/"&gt;https://www.jsdelivr.com/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://pages.github.com/"&gt;https://pages.github.com/&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;As I switched the repo to be private I can no longer use that approach anyway.&lt;/p&gt;

&lt;p&gt;Git already allows you to see raw files - &lt;a href="https://stackoverflow.com/questions/39065921/what-do-raw-githubusercontent-com-urls-represent"&gt;See this stack overflow answer&lt;/a&gt;&lt;/p&gt;
</content></entry><entry><id>http://mateuszligeza.com/2016/03/useful-git-commands/</id><title type="text">Useful git commands</title><summary type="html">&lt;p&gt;List of various git commands that often can save the day.&lt;/p&gt;

</summary><published>2016-03-22T00:00:00Z</published><updated>2016-03-22T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2016/03/useful-git-commands/" /><content type="html">&lt;p&gt;List of various git commands that often can save the day.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Create new repository&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git init
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-init"&gt;git init&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Get remote repository&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git clone &amp;lt;repository-url&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-clone"&gt;git clone&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Add all files from current directory to next commit&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git add . -A
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-add"&gt;git add&lt;/a&gt;&lt;/em&gt;   &lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Check changes prepared for next commit&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-status"&gt;git status&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Clean working directory&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git clean
//-f      delete non-ignored untracked files
//-fx     delete all untracked files
//-fX     delete ignored files
//-d      also remove directories
//-n      list files that will be deleted
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Most commonly used as a pair&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git clean -dfxn
git clean -dfx
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-clean"&gt;git clean&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="https://tortoisegit.org/docs/tortoisegit/tgit-dug-cleanup.html"&gt;tortoise git manual&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Add remote repository to local repository&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git remote add &amp;lt;remote-name&amp;gt; &amp;lt;repository-url&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-remote"&gt;git remote&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Detach remote repository from local repository&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git remote remove &amp;lt;remote-name&amp;gt; &amp;lt;repository-url&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-remote"&gt;git remote&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Push changes from local branch to remote repository&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git push -u &amp;lt;remote-name&amp;gt; &amp;lt;branch-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-push"&gt;git push&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Push all local branches to remote repository&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git push -u &amp;lt;remote-name&amp;gt; -all
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-push"&gt;git push&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Force update of remote branch with your changes (after altering the history) (with making sure that you don't affect others)&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git push --force-with-lease
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-push"&gt;git push&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Change current branch&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git checkout &amp;lt;branch-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-checkout"&gt;git checkout&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Create branch&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git branch &amp;lt;branch-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-branch"&gt;git branch&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;List all branches&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git branch
//-r      also show remote branches
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-branch"&gt;git branch&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Delete branch&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git branch -D &amp;lt;branch-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-branch"&gt;git branch&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Add git submodule&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git submodule add &amp;lt;repository-url&amp;gt; &amp;lt;local-path&amp;gt;
// local-path can have nested folders folder/subfolder/repo-name
// to change the commit to which submoduel points just navigate to the submodule repo folder and do regular git checkout
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://www.atlassian.com/git/tutorials/git-submodule"&gt;Atlassian git tutorials: git-submodule&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Git Pull with Submodule&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;// For a repo with submodules, we can pull all submodules using
git submodule update --init --recursive

// To update submodules
git pull --recurse-submodules
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="http://openmetric.org/til/programming/git-pull-with-submodule/"&gt;Git Pull with Submodule&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Remove all local changes done to a branch&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git reset --hard &amp;lt;remote-name&amp;gt;/&amp;lt;branch-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-reset"&gt;git reset&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="http://stackoverflow.com/questions/5097456/throw-away-local-commits-in-git"&gt;StackOverflow: Throw away local commits in git&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Merge with merge commit&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git merge --no-ff
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-merge"&gt;git merge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Merge with squash&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git merge --squash
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-merge"&gt;git merge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Undo uncommited merge that has conflicts&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git merge --abort

//prior to git 1.7.4
git reset --merge

//prior to git 1.6.2
git reset --hard
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-merge"&gt;git merge&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-reset"&gt;git reset&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="http://stackoverflow.com/questions/5741407/how-to-undo-a-git-merge-with-conflicts"&gt;StackOverflow: How to undo a git merge with conflicts&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Revert commited merge&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git revert -m [1 or 2] [merge commit hash]
// the 1 and 2 refer to the parents of the merge - check git history to know which one to use
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://www.christianengvall.se/undo-pushed-merge-git/"&gt;Undo a pushed merge with git&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Alter last commit files without changing commit message&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git commit --amend --no-edit
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More : &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-revert"&gt;git revert&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History"&gt;Git Tools - Rewriting History&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="https://stackoverflow.com/questions/7099833/how-to-revert-a-merge-commit-thats-already-pushed-to-remote-branch"&gt;StackOverflow: How to revert a merge commit that's already pushed to remote branch?&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Find when a file was deleted&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git log -- [file path]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-log"&gt;git log&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="http://stackoverflow.com/questions/6839398/find-when-a-file-was-deleted-in-git"&gt;StackOverflow: Find when a file was deleted in Git&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Find changes to the file beyond renamas&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git log --follow [file path]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-log"&gt;git log&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Check git configuration&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git config --global --edit
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-config"&gt;git config&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Change git line endings to work on windows&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git config --global core.autocrlf true
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More: &lt;em&gt;&lt;a href="https://git-scm.com/docs/git-config"&gt;git config&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="http://stackoverflow.com/questions/10418975/how-to-change-line-ending-settings"&gt;StackOverflow: How to change line-ending settings&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#Formatting-and-Whitespace"&gt;gitBook: Formatting and Whitespace&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;blockquote&gt;
  &lt;p&gt;Git reading list&lt;br /&gt;
  &lt;a href="http://www.vogella.com/tutorials/Git/article.html"&gt;Vogella Git Tutorial&lt;/a&gt;&lt;br /&gt;
  &lt;a href="https://www.atlassian.com/git/"&gt;Atlassian Git Tutorial&lt;/a&gt;&lt;br /&gt;
  &lt;a href="https://guides.github.com/"&gt;GitHub Guides&lt;/a&gt;  &lt;/p&gt;
&lt;/blockquote&gt;
</content></entry><entry><id>http://mateuszligeza.com/2016/03/windows-packagemanagent/</id><title type="text">Windows 10 PackageManagement</title><summary type="html">&lt;p&gt;Windows 10 comes with nice feature - &lt;a href="https://github.com/OneGet/oneget"&gt;OneGet&lt;/a&gt; - Manager of Package managers. It simplifies way of installing software on a PC and what is more important - it allows to make it scriptable. I'm big fan of &lt;a href="https://chocolatey.org/"&gt;Chocolatey&lt;/a&gt; so I was glad to learn that Microsoft took care of integrating it with OneGet. Basic info can be found in Scott Hanselman blog post &lt;a href="http://www.hanselman.com/blog/AptGetForWindowsOneGetAndChocolateyOnWindows10.aspx"&gt;Apt-Get for Windows - OneGet and Chocolatey on Windows 10&lt;/a&gt; and on Microsoft TechNet blog post &lt;a href="http://blogs.technet.com/b/packagemanagement/archive/2015/04/29/introducing-packagemanagement-in-windows-10.aspx"&gt;Introducing PackageManagement in Windows 10&lt;/a&gt;.&lt;/p&gt;

</summary><published>2016-03-22T00:00:00Z</published><updated>2016-03-22T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2016/03/windows-packagemanagent/" /><content type="html">&lt;p&gt;Windows 10 comes with nice feature - &lt;a href="https://github.com/OneGet/oneget"&gt;OneGet&lt;/a&gt; - Manager of Package managers. It simplifies way of installing software on a PC and what is more important - it allows to make it scriptable. I'm big fan of &lt;a href="https://chocolatey.org/"&gt;Chocolatey&lt;/a&gt; so I was glad to learn that Microsoft took care of integrating it with OneGet. Basic info can be found in Scott Hanselman blog post &lt;a href="http://www.hanselman.com/blog/AptGetForWindowsOneGetAndChocolateyOnWindows10.aspx"&gt;Apt-Get for Windows - OneGet and Chocolatey on Windows 10&lt;/a&gt; and on Microsoft TechNet blog post &lt;a href="http://blogs.technet.com/b/packagemanagement/archive/2015/04/29/introducing-packagemanagement-in-windows-10.aspx"&gt;Introducing PackageManagement in Windows 10&lt;/a&gt;.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;WARNING&lt;/strong&gt;&lt;br /&gt;
  Chocolatey provider is broken and at the moment it only downloads packages to C:\Chocolatey\lib folder, but doesn't install them properly&lt;br /&gt;
  As a workaround you can use &lt;a href="http://www.mateuszligeza.com/2016/03/bootstrap-windows-apps-script/"&gt;following script&lt;/a&gt; (run it elevated powershell console)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To get started first configure Chocolatey as a package provider&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Get-PackageProvider -Name Chocolatey
Set-PackageSource -Name Chocolatey -Trusted
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Example&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;PS C:\Users\Mateusz&amp;gt; Get-PackageProvider -Name Chocolatey

The provider 'chocolatey v2.8.5.130' is not installed.
chocolatey may be manually downloaded from https://az818661.vo.msecnd.net/providers/ChocolateyPrototype-2.8.5.130.exe and installed.
Would you like PackageManagement to automatically download and install 'chocolatey' now?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

Name                     Version          DynamicOptions
----                     -------          --------------
Chocolatey               2.8.5.130        SkipDependencies, ContinueOnFailure, ...

PS C:\Users\Mateusz&amp;gt; Set-PackageSource -Name Chocolatey -Trusted

Name                             ProviderName     IsTrusted  IsRegistered IsValidated  Location
----                             ------------     ---------  ------------ -----------  --------
chocolatey                       Chocolatey       True       True         True         http://chocolatey.org/api/v2/
&lt;/code&gt;&lt;/pre&gt;

&lt;hr /&gt;

&lt;p&gt;Check that Chocolatey is installed with command&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Get-PackageProvider
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Example&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;PS C:\Users\Mateusz&amp;gt; Get-PackageProvider

Name                     Version          DynamicOptions
----                     -------          --------------
Chocolatey               2.8.5.130        SkipDependencies, ContinueOnFailure, ...
msi                      3.0.0.0          AdditionalArguments
msu                      3.0.0.0
PowerShellGet            1.0.0.1          PackageManagementProvider, Type, Scope, ...
Programs                 3.0.0.0          IncludeWindowsInstaller, ...
&lt;/code&gt;&lt;/pre&gt;

&lt;hr /&gt;

&lt;p&gt;As a test install git with command&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Find-Package git
Install-Package git
&lt;/code&gt;&lt;/pre&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt;&lt;br /&gt;
  You may be prompted to install NuGet package provider&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Example&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;PS C:\Users\Mateusz&amp;gt; Find-Package git

The provider 'nuget v2.8.5.202' is not installed.
nuget may be manually downloaded from https://az818661.vo.msecnd.net/providers/Microsoft.PackageManagement.NuGetProvider-2.8.5.202.dll and installed.
Would you like PackageManagement to automatically download and install 'nuget' now?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

Name                           Version          Source                         Summary
----                           -------          ------                         -------
git                            2.7.4            chocolatey                     Git (for Windows) – Fast Version Control

PS C:\Users\Mateusz&amp;gt; Install-Package git

Name                           Version          Source                         Summary
----                           -------          ------                         -------
git                            2.7.4            chocolatey                     Git (for Windows) – Fast Version Control
&lt;/code&gt;&lt;/pre&gt;
</content></entry><entry><id>http://mateuszligeza.com/2016/03/my-first-blog/</id><title type="text">My first blog</title><summary type="html">&lt;p&gt;Inspired by Scott Hanselman I decided to create my own blog.&lt;/p&gt;

</summary><published>2016-03-12T00:00:00Z</published><updated>2016-03-12T00:00:00Z</updated><link rel="alternate" href="http://mateuszligeza.com/2016/03/my-first-blog/" /><content type="html">&lt;p&gt;Inspired by Scott Hanselman I decided to create my own blog.&lt;/p&gt;

&lt;!--excerpt--&gt;

&lt;p&gt;As Scott explains in his posts &lt;a href="http://www.hanselman.com/blog/YourWordsAreWasted.aspx"&gt;YourWordsAreWasted&lt;/a&gt; and &lt;a href="http://www.hanselman.com/blog/YourBlogIsTheEngineOfCommunity.aspx"&gt;YourBlogIsTheEngineOfCommunity&lt;/a&gt;, blog is a great way to preserve your knowledge.&lt;/p&gt;

&lt;p&gt;I started paying more attention to what other people I value are using as their blog platforms. Most notably &lt;a href="http://www.troyhunt.com/"&gt;Troy Hunt&lt;/a&gt;, &lt;a href="http://www.hanselman.com/"&gt;Scott Hanselman&lt;/a&gt;, &lt;a href="http://haacked.com/"&gt;Phil Haack&lt;/a&gt; and &lt;a href="http://paulstovell.com/"&gt;Paul Stovell&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I wanted to have something simple that I will be able to host on Azure preferably on free tier. First I tried &lt;a href="https://ghost.org/"&gt;ghost&lt;/a&gt; as it was available in Azure Websites gallery. It was nice to use but I was concerned by the fact, that I would have to use ssl to be able to securely log in and write posts. My other concern was that all created content would be only in Azure and I would have to come with some backup strategy to be able to move my content somewhere else if needed. Also ghost is running on a different technolgy stack that I am used to so running it locally would be troublesome. More over migrating to newer versions of ghost seem to be difficult as well.&lt;/p&gt;

&lt;p&gt;So I decided to use something else, that will be open source and based on .Net - this is when I discovered &lt;a href="https://github.com/rxtur/BlogEngine.NET"&gt;BlogEngine.NET&lt;/a&gt;. After couple of minutes I had it up and running on my localhost. I was sure that it will be easier to maintain and update thatn ghost but still I would have to use ssl and some backups to be sure that I don't loose my content (and external plugins). Other drawback was that it wasn't using Markdown - and after using ghost I realy started to like it.&lt;/p&gt;

&lt;p&gt;Both BlogEngine.NET and ghost seemed to be overkill to what I wanted to have. I wanted sleek and simple blog as the onw Paul Stovell has (have you seen his nice and simple html?). Then I heard about &lt;a href="https://jekyllrb.com/"&gt;jeckyll&lt;/a&gt; - it allows you to have Markdown based, source controlled blog post that are complied to pure html after you commit changes to your repository. I found this post about &lt;a href="http://www.arroyocode.com/a-file-based-blog-using-markdown-and-asp-net-mvc-3/"&gt;file based blog using markdown and aspnet mvc3&lt;/a&gt;. At first I decided that I will try to write something simmilar by myself - I started looking at some Markdown engines - &lt;a href="https://github.com/PKRoma/MarkdownSharp"&gt;MarkdownSharp&lt;/a&gt; and &lt;a href="https://github.com/Knagis/CommonMark.NET"&gt;CommonMark.Net&lt;/a&gt;. After reeding this article about &lt;a href="https://github.com/madskristensen/WebEssentials2013/issues/1732"&gt;WebEssentials using CommonMark.NET&lt;/a&gt; I decided to use CommonMark.NET along with &lt;a href="https://highlightjs.org/"&gt;highlight.js&lt;/a&gt; - it allowed me to use GitHub flawored Markdown with language hints instead of indentation (like ```cs) and easily change between syntax coloring styles. The only drawback was that it didn't support line numbering (and I liked that feature since I'm using Confluence which allows that in its code makro).&lt;/p&gt;

&lt;p&gt;But before I fent fully ahead and reinvent the weel I decided I will do some research on GitHub for the similar projects. This is how I found &lt;a href="https://github.com/Code52/pretzel"&gt;pretzel&lt;/a&gt; and &lt;a href="https://github.com/Sandra/Sandra.Snow"&gt;Sandra.Snow&lt;/a&gt;. To my surprise I discovered that default Sandra.Snow theme (the theme used by author of the repo &lt;a href="http://www.philliphaydon.com/"&gt;Phillip Haydon&lt;/a&gt;) is the same as Paul Stovell is using! I was on a right track. This blog engine would allow me to have all that I wanted and it was already written with &lt;a href="https://vimeo.com/65055971"&gt;Azure in mind&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Nice thing about Sandra.Snow is that it allows you to easily enhance your blog with &lt;a href="https://disqus.com/"&gt;Disqus&lt;/a&gt;, &lt;a href="https://www.google.com.au/analytics/"&gt;Google Analytics&lt;/a&gt; and &lt;a href="https://www.addthis.com/"&gt;AddThis&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After I played around with Sandra.Snow I realized that I will not be able to use highlight.js with it - Sandra.Snow is using &lt;a href="https://github.com/jchannon/Nancy.ViewEngines.Markdown"&gt;Nancy.ViewEngines.Markdown&lt;/a&gt; to parse markdown files - and it uses MarkdownSharp that doesn't support GitHub flavored syntax (and ```cs language hints). So at the moment I'm bound to using &lt;a href="https://github.com/google/code-prettify"&gt;Prettify&lt;/a&gt; and indentation to have my code nicely highlighted.&lt;/p&gt;

&lt;p&gt;Next step was to create my own blog theme. After looking what free responponsive html templates are available on &lt;a href="http://html5up.net/"&gt;HTML5 UP&lt;/a&gt; and &lt;a href="http://www.scoopthemes.com/"&gt;Scoop&lt;/a&gt; I decided to use &lt;a href="http://html5up.net/striped"&gt;Stripped theme&lt;/a&gt;. For the code highlighting I searched for some nice prettify skin in default &lt;a href="https://rawgit.com/google/code-prettify/master/styles/index.html"&gt;skin gallery&lt;/a&gt; but I wasn't satisfied and I finally settled with this &lt;a href="https://github.com/RaphaelDDL/google-prettify-monokai-theme"&gt;monokai theme&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;br /&gt;
  I changed the theme - this time I created it from scratch using &lt;a href="http://getbootstrap.com/"&gt;Bootstrap&lt;/a&gt; - Scoop theme wasn't displaying nicely on mobile devices. I also added support for &lt;a href="https://rawgit.com/"&gt;rawgit cdn&lt;/a&gt;. For code highlighting I used GitHub prettify theme from &lt;a href="https://jmblog.github.io/color-themes-for-google-code-prettify/"&gt;jmblog&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After blog was ready I started thinking about hosting. To be able to use custom domain name in Azure you need to use at least &lt;a href="https://azure.microsoft.com/en-us/pricing/details/app-service/plans/"&gt;Shared app service plan&lt;/a&gt;. Here is where &lt;a href="https://www.visualstudio.com/en-us/products/visual-studio-dev-essentials-vs.aspx"&gt;Visual Studio Dev Essentials&lt;/a&gt; comes to a rescue with it's $25/month free Azure credits. So I bought my domain on &lt;a href="https://www.namecheap.com/"&gt;Namecheap&lt;/a&gt; and configured &lt;a href="https://azure.microsoft.com/en-us/documentation/articles/web-sites-publish-source-control/"&gt;continuous deployment using Git&lt;/a&gt; (&lt;a href="https://github.com/projectkudu/kudu"&gt;Kudu&lt;/a&gt; came to be very handy where it comed to troubleshooting deployment script - more about how to access it &lt;a href="https://github.com/projectkudu/kudu/wiki/Accessing-the-kudu-service"&gt;here&lt;/a&gt;). As a final step I had only &lt;a href="http://blogs.msdn.com/b/waws/archive/2014/10/01/mapping-a-naked-url-to-your-azure-web-site-url-with-no-www.aspx"&gt;configure Namecheap DNS records to play nicely with Azure&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt;&lt;br /&gt;
  When configuring DNS entires remember that you &lt;a href="http://joshstrange.com/why-its-a-bad-idea-to-put-a-cname-record-on-your-root-domain/"&gt;shouldn't put CNAME record on your root domain&lt;/a&gt;&lt;/p&gt;
  
  &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt;&lt;br /&gt;
  When you want to point Multiple Domain Names to one website read &lt;a href="http://www.thesitewizard.com/domain/point-multiple-domains-one-website.shtml"&gt;How to Avoid Search Engine Problems When Doing So&lt;/a&gt;&lt;/p&gt;
  
  &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt;&lt;br /&gt;
  Basic differences between the A and CNAME records are explained &lt;a href="https://support.dnsimple.com/articles/differences-a-cname-records/"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It sure need more tweeks but at the moment I'm pretty satisfied with the result.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;var minions = new []{"Bob", "Stuart", "Kevin"};
foreach(var minion in minions)
{
    Console.WriteLine(minion);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src="http://mateuszligeza.com/_cdn/20160312-minion.jpg" alt="minion" /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Bunch of interesting links (for me to remember how it works internally)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/projectkudu/kudu"&gt;https://github.com/projectkudu/kudu&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/projectkudu/kudu/wiki/Accessing-the-kudu-service"&gt;https://github.com/projectkudu/kudu/wiki/Accessing-the-kudu-service&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/projectkudu/kudu/wiki/Deployment-hooks"&gt;https://github.com/projectkudu/kudu/wiki/Deployment-hooks&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/projectkudu/kudu/wiki/Customizing-deployments"&gt;https://github.com/projectkudu/kudu/wiki/Customizing-deployments&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/projectkudu/KuduScript/tree/master/lib/templates"&gt;https://github.com/projectkudu/KuduScript/tree/master/lib/templates&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://stackoverflow.com/questions/18309941/what-does-it-mean-by-command-cd-d-dp0-in-windows"&gt;http://stackoverflow.com/questions/18309941/what-does-it-mean-by-command-cd-d-dp0-in-windows&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://stackoverflow.com/questions/6679907/setlocal-and-enabledelayedexpansion-usage-question"&gt;http://stackoverflow.com/questions/6679907/setlocal-and-enabledelayedexpansion-usage-question&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/Sandra/Sandra.Snow/wiki"&gt;https://github.com/Sandra/Sandra.Snow/wiki&lt;/a&gt;&lt;/p&gt;
</content></entry></feed>