Develop React Native App on Windows

This guide will help you get started with developing React Native apps in Windows, hopefully without too much hassle. I’ve included screenshots and screen-gifs where required to make your life slightly easier. We will be deploying our app on a virtual device setup by Android Studio.

Continue reading “Develop React Native App on Windows”

ASP.NET Core AppSettings & Azure

ASP.NET Core had its configuration system re-architected from being limited to reading from XML files to reading configuration settings from any key/value based settings files such as JSON, INI and XML.

In this article we will explore the minimum amount of work required to read these settings out in your ASP.NET Core application. This includes taking a look at how it behaves when deployed in Azure. Continue reading “ASP.NET Core AppSettings & Azure”

ReactJS for .NET Developers

ReactJS for .NET Developers

If you are a .NET developer who has been pushed into the deep-end to learn React like yesterday, this article will be your lifebuoy. Using the concepts that you are already familiar with as a .NET developer, I will try to explain how React and Redux sit together and their full lifecycle. After reading this article, you will be able to follow what your fellow developers are talking about during the Daily Scrum Meeting and not feel left out.

This article is just like the lifebuoy, it is not going to swim you to shore but will keep you from drowning.

Continue reading “ReactJS for .NET Developers”

StarterKit for React-Redux & .Net Core

StarterKit for React-Redux & .Net Core

Do you want to …

  • Do you want to create a cool React app?
  • Do you want to create an API for your back-end using .NET core?
  • Do you want your React app to talk to the API?
  • You don’t know where to start?

If you answered Yes to the above questions, this StarterKit is for you. Continue reading “StarterKit for React-Redux & .Net Core”

Spying on ES6 modules

Spying on ES6 modules

Please familiarise yourself with why we have ES6 Modules and its terminology as it going to help you to understand some of the issues we will be discussing here. The article, An Introduction To JavaScript ES6 Modules is a good place to start.

We can write perfectly functioning code, that is simple, readable and optimised. But when it comes to testing, it adds another dimension to your code and changes the way you would approach coding. Those who have developed in C#, you know why we need Interfaces and implementing it will change the way you approach writing your code.

The following issues are known pain points when it comes to testing ES6 modules:

  • Named Exports
  • Multiple Exports

We will use a Warehouse example, which uses Mocha, Sinon and Chai, to explore how we can rewrite the code to get them to pass the above mentioned pain points, and still have them function properly. Although the title mentions spying, the idea is that if you can Spy then you should be able to Stub and Mock.

Continue reading “Spying on ES6 modules”

Introduction to testing in JavaScript

Introduction to testing in JavaScript

The ever growing JavaScript ecosystem is built by the developer community to solve their problems their way, which is ever so slightly different to the solutions that already exist. So when it comes to testing, the arena is quite deconstructed, just like the hipster cafes in Melbourne serving up ‘deconstructed’ coffee.

The main focus of this article is to give you an idea about how testing sits together in JavaScript and help you understand why and how it is deconstructed so that you can make better choices when it comes to choosing a library for the job at hand. After all we don’t want you to become a Candy Land developer, just because there are too many choices.

Continue reading “Introduction to testing in JavaScript”

Managing Tech Debts

Managing Tech Debts

As developers, it is a difficult task to explain to our product owner the business value of a piece of technical work that needs doing. It is also difficult to provide risk analysis for these tasks. In turn, as a product owner, it is hard for them to prioritise such technical work with out coming across technical reasoning and jargon.

At Barnardos, together with Readify consultant Abdelmawla Mohamed, we are exploring how we can define these technical work in such way that it is easy for the developers to describe the work involved and the risks associated with it without using technical jargon, while still providing a common language and consistent representation of impact and risks to help the product owner with prioritising.

Continue reading “Managing Tech Debts”

Create self-signed certificate to use with Azure PowerShell cmdlets

Create self-signed certificate to use with Azure PowerShell cmdlets

For those who are trying to figure out how to create a self-signed certificate for the purpose of running Powershell scripts to manage Azure account, check out Raph’s article on how to create certificate to use with Azure. Raph is a driven Readify consultant and a good mate, currently working with me at Barnardos on MyStory project.

If you are going to be running the Powershell script from any other machine than the one you created the cert from, you will need to install the certificate on those machines. To install it, you need to first export the cert as a pfx with a strong password and import it in the  machine that you want to run the script from.

How are Azure VM and Cloud Services related?

How are Azure VM and Cloud Services related?

Recently, I was experimenting with moving local TeamCity Build Server and Agents to the Azure. Every time I created a VM, I was faced with the question of creating a new cloud service or using an existing one. I simply went with creating a new one, until I needed to perform Azure Scaling. Then i came to know, it is easier to do that when VM’s are part of the same cloud service.

The question that kept bugging me was, how does the traditional cloud service (the one with worker and web role and 2 instances) relate to a cloud service that has many VM’s for the purpose of scaling and load balancing? Ultimately, aren’t cloud services and VM’s separate things?

The article by Planky at MSDN Blogs answers these two questions it in detail.

Neo4J 2 – Understanding Collections

Neo4J 2 – Understanding Collections

In Cypher, to fetch a Person with their email addresses and phone numbers, you might write a straight forward query like this:

MATCH (person:Person)
MATCH person-[:HAS_EMAIL]->email
MATCH person-[:HAS_PHONE]->phone
RETURN person,
       collect(distinct email),
       collect(distinct phone)

In this article, we will try to get a better understanding of collections in Cypher. At first, we will look under the hood to see how this query is run, understand why it is an expensive job and finally, how we can optimise it and avoid this undesired behaviour in the future.

Continue reading “Neo4J 2 – Understanding Collections”

Neo4J 2 – Joins in Cypher

Neo4J 2 – Joins in Cypher

The OPTIONAL MATCH clause is a way of fetching related data off a node, without affecting the main query. It allows us to perform some joins similar to the ones we know from SQL, see image below. We will discuss in detail how MATCH and OPTIONAL MATCH clauses can lend themselves towards constructing the joins.

Note: We will not be covering right joins as they are costly to perform in graph database, it is much more efficient to swap the sides and perform a flavour of left join. We also are not going to talk about Self Join.

Continue reading “Neo4J 2 – Joins in Cypher”