Tuesday, 3 December 2024

Learning about .eml files

An .eml file is a plaintext version of an email which users can save to devices. These files can be sent and received via RFC-822 compliant programs.  In Windows you can also right-click on an .eml file and open it in Microsoft Word.

Opening an .eml in Notepad you may see sections specifying DKIM-Signature designed to prevent email spoofing.

Wednesday, 14 August 2024

Using Resource Manager templates to create virtual networks

Here is a good tutorial that covers a lot of infrastructure-as-code concepts in the context of creating a virtual network with two subnets using Resource manager templates (also referred to as Azure Resource Manager, or ARM, templates).

Cloud Services on Snowflake

Snowflake has three layers of architecture: storage, compute and cloud services. While Snowflake is available on a number of clouds i.e. AWS, GCP and Azure, not all cloud services are available on all cloud platforms. For example, Azure Private link is not fully supported. However there are some interesting considerations here.

How does Snowflake store data?

There are many "big data" technologies out there one of them being Snowflake. Snowflake lets you run SQL queries on data which is stored in Snowflake's internal columnar format optimized for cloud storage.

Tuesday, 13 August 2024

gRPC for .NET

The recommended library for using gRPC in .NET is grpc/grpc-dotnet under the Apache 2.0 license (The original implementation is now deprecated). gRPC is a (language agnostic) remote procedure call framework designed for high performance. Coding is structured around .proto files explained here. Common use cases include gRPC authentication (gRPC can converse with a variety of authentication systems), compression and other distributed communication scenarios. gRPC is often used with protobuf.

Monday, 8 July 2024

Intel SGX based confidential computing VMs

Intel Software Guard Extensions (SGX) represent instruction codes implemented in some Intel CPUs to provide a "trusted execution environment". It does this by protecting private regions of memory called enclaves. How it works is SGX encrypts a portion of memory called the enclave. Data and code from the enclave are decrypted on the fly inside the CPU, preventing it being read by other code. This can be used for protecting proprietary algorithms and encryption keys. In 2021 this became deprecated for Intel Cores but still valid for Intel Xeon for cloud and enterprise use.

Microsoft Azure makes available confidential computing VMs based on SGX technology.

Thursday, 20 June 2024

WSL1 versus WSL2

The Windows Subsystem for Linux currently comes in two varieties, WSL1 and WSL2. The latter has faster performance and "100% system call compatibility" (as opposed to intermediation through a translation layer in WSL1) so it should be the preferred option.

WSL1 may still be preferred in specific cases, for example, if project files need to be stored in the Windows file system. However it should be assessed whether these files can be mounted in Linux instead. There are also some specific networking scenarios to consider.

Building a VSCode Extension

It is important to know how to build a VSCode extension, not only in case you need one, but to know how one is built.  This guide will help you achieve this.  Note that it uses Yeoman, a "scaffolding tool for modern web apps", and a VSCode Extension Generator.

Tuesday, 18 June 2024

WSL at MS Build 2024

Insights on WSL from MS Build 2024. For example a DNS tunnelling feature has been added to address certain VPN issues.

Windows Subsystem for Linux (wsl)

wsl is available in versions of Windows 10 and above.

wsl --list

Will list installed distributions. In no distribution is installed, it will say "Windows Subsystem for Linux has no installed distributions".

To view a list of available distributions type:

wsl --list --online

This will give you some distributions like Ubuntu, Debian, kali-linux, openSUSE and others.

Here's how to install the Ubuntu distribution.

wsl --install -d Ubuntu

There are some recommended practises for setting a development environment in wsl.

VSCode is Cool

Visual Studio Code is increasingly giving Microsoft Visual Studio a run for its money. 

One of the plus points of VSCode is it's lightweight as well as having built-in support for JavaScript, TypeScript and Node.js with other languages supported as extensions.

Monday, 17 June 2024

Advertising SDKs and Standards

Microsoft Advertising SDK is compatible with a range of standards including OpenRTBVAST 2.x, MRAID and VPAID from the IAB (Interactive Advertising Bureau).

CodeQL and Security

CodeQL is a tool for developers to automate security checks. It treats code as data, onto which queries can be run. These queries are designed to detect security vulnerabilities. CodeQL is free to use on public repositories.

Introducing winget

Open cmd.exe and type winget --version to see what version you are running and winget list to see a list of the packages managed by the Windows Package Manager (latter versions of Windows 10 and above). Some interesting packages you may not have otherwise seen include: Microsoft Advertising SDK for XAML, Microsoft People and Microsoft Edge WebView2 Runtime.

Saturday, 9 March 2024

GitHub Copilot is Making Waves in Development Teams

GitHub Copilot is the new pair programmer on the block. One key application of it is writing test code.

Sunday, 28 January 2024

What Version of Microsoft Edge am I using?

 Click the three dots in the top right of the Edge browser and click on the Gears.