Browse our archives by topic…
Blog

High-performance C#: a test pattern for ref structs
Explore C# 7.2's ref structs, use in high-performance scenarios, their constraints, and techniques for overcoming challenges in unit testing the Ais.Net parser.

An experimental approach to software development
Endjin applies scientific experimentation to software development for validated solutions, using hypotheses for confident designs.

Learning DAX and Power BI – Row Contexts
Here is the second blog in a series around learning DAX and Power BI. This post focuses on row contexts, which are used when iterating over the rows of a table when, for example, evaluating a calculated column. Row contexts along with filter contexts underpin the basis of the DAX language. Once you understand this underlying theory it is purely a case of learning the syntax for the different operations which are built on top of it.

Help for the new CTO: Getting to know your team
As part of my series on guidance for CTOs, I discuss using the Office of the CTO (OCTO) approach to management, its strengths and limitations.

Azure Analysis Services - How to process an asynchronous model refresh from .NET
Learn to use Azure Analysis Services in custom apps via REST API in .NET for efficient async model refreshes.

Introducing Ais.Net - High-Performance Parsing in C#
Explore endjin's high-performance .NET AIS parser, developed for OceanMind, used for tracking commercial ships.

Learning DAX and Power BI - Filter Contexts
Explore the basics of DAX and Power BI in this series. This first post focuses on filter contexts, a key concept for effective DAX usage.

Power BI Data Type Mappings
Explore Power BI data types across mediums, learn their corresponding names, and simplify query conversions with this informative blog and report.

C# developers! Your scoped components are more dangerous than you think.
Discover the challenges and alternatives of managing scoped component lifetimes with dependency injection.

Azure Analysis Services: How to execute a DAX query from .NET
Explore endless possibilities with dynamic DAX queries in C# for Azure Analysis Services integration in custom apps using the provided code samples.

Help for the new CTO: Transparent salaries and the gender pay gap
Salaries. What a nightmare! Hardly anyone likes talking about money. Technical people don't like talking about money. Even a lot of sales people don't like talking about money. When a CTO comes into an organization (even a brand new start-up) one of the first things you need to sort out is the salary quagmire. In this article we look at the strategies and pitfalls of introducing open, capability-based pay levels for a product development team.

British Science Week - inspiring the next generation of data scientists
The theme of this year's British Science Week (6 - 15 March 2020) is "Our Diverse Planet". We'll be getting involved by speaking to school children about the work we've been doing with Oxfordshire-based OceanMind (part of the Microsoft AI for Good programme) to help them combat illegal fishing, hopefully inspiring some of the next generation of data scientists!

Why You Should Buy My Book: Programming C# 8.0
Ian spent a big chunk of last year writing an update to his book, Programming C# 8.0. Books continue to be Ian's preferred source of learning because nothing else offers the combination of depth, breadth, and coherence. His goal with Programming C# 8.0 (and its predecessors) was very clear: to write the book that he would want to read if he were learning C# today. It is Ian's attempt to distil around 18 years of experience with C# (part of almost 30 years of work as a programmer) into a coherent, complete description of what you'll need to know to be productive today in C#.

How can I contribute to the Azure CNAB Quickstarts Library?
The Azure CNAB Quickstart Templates we've created are only half the story. Much of the work we've done over the last few months involved the authoring, contribution and DevOps pipelines required to support an open source project. The project is inspired by the original Azure Quickstart Templates - which over the last 5 years has grown to over 850 templates. In this post we're going to explain how you can author CNAB templates and contribute them.

Setting up Porter on Windows
Porter: a CNAB-based tool for building, managing, and installing app bundles. Learn to set up Porter on Windows with this guide.

Setting up Windows Subsystem for Linux (WSL) 2 for Windows 10 & Docker
Learn how to enable WSL 2 on Windows 10 and use its features with Docker for Windows.

An Overview of the Azure CNAB Quickstarts Library
The Azure CNAB Quickstarts Library helps you get up and running with CNAB and Porter. We've built quickstarts covering solutions like WordPress, Ghost, Mattermost, and data platforms like Apache Airflow, SQL Server AlwaysOn clusters and Kubernetes features like an nginx ingress controller and an Azure AD enabled OAuth2 Proxy. We've condensed all our learnings from the past 9 months of working on the project and turned them into a 10 minute video which explains all the key concepts. We hope this video helps accelerate your own CNAB & Porter epiphanies!

Introducing the Azure CNAB Quickstarts Library
In partnership with Microsoft, we have released Azure CNAB Quickstarts Library on GitHub. CNAB (Cloud-Native Application Bundle) is a new specification designed for facilitating the packaging, installation, upgrading and uninstallation of cloud-native solutions in the cloud, on-premise or on the edge. We've created a number of quickstarts covering Apache Airflow, Azure Kubernetes Service, Ghost, Kubeflow, SQL Server Always On and Wordpress to help demonstrate the power of CNAB and Porter.

Help for the new CTO: IR35 and hiring developers
It has been a staple of IT projects to make liberal use of short-term contract staff. Upcoming changes in IR35 for medium to larger employers is seriously disrupting the IT recruitment market, and you should understand the impact bt

Five quick tips for public speaking
We all get nervous in the run up to a public speaking event. However, there are things we can do which help alleviate some of the pressure. Here are 5 quick tips around preparing for a talk!

A brief introduction to GTD (Getting Things Done)
Boost productivity & reduce stress with GTD workflow. Mike Larah shares insights from a recent course on this effective time management method.

Exposing legacy batch processing code online using Azure Durable Functions, API Management and Kubernetes
Discover how Kubernetes, Azure Durable Functions, and Azure API Management transform legacy batch processing code into a RESTful API.

Azure Analysis Services - How to query all the measures in a model from .NET
Explore .NET querying methods for integrating Azure Analysis Services beyond data querying into dynamic UIs and APIs.

Azure Analysis Services: How to open a connection from .NET
Learn to integrate Azure Analysis Services in apps by establishing server connections. Follow this guide with code samples for essential scenarios.

NDC London 2020 - My highlights
Ed attended NDC London 2020, along with many of his endjin colleagues. In this post he summarises and reflects upon his favourite sessions of the conference including; "OWASP Top Ten proactive controls" by Jim Manico, "There's an Impostor in this room!" by Angharad Edwards, "How to code music?" by Laura Silvanavičiūtė, "ML and the IoT: Living on the Edge" by Brandon Satrom, "Common API Security Pitfalls" by Philippe De Ryck, and "Combatting illegal fishing with Machine Learning and Azure - for less than £10 / month" by Jess Panni & Carmel Eve.