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.
Category: technical
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
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.
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
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.
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.
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.
Shutdown Neo4j Gracefully
In this post we will be covering how to shutdown neo4j service gracefully under different versions of neo4j. Continue reading “Shutdown Neo4j Gracefully”
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?
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
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.
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.