Latest Posts
Monday, May 24, 2021
When you are planning and configuring your server farm, one of the most common task will probably be changing your server names to fit your organization's naming convention. In this post we are going to change one of our Linux hostname with the hostnamectl command. Here are the steps to change your Linux hostname.
1. Open a terminal session on the host that you want to change the hostname, then type the command hostnamectl the hostname information will be displayed, as you can see the hostname is currently localhost.localdomain
2. Let's see we want to change the name of the server to dc.acmebanking.com because this is the server for our company ACME Banking Inc. and we want this server to be the domain controller hence the letters dc. to label it as the domain controller. Some people like to be creative and use movie characters or attractions as the server names. It's a matter of preference, but I like to look at a server name and know exactly what it's for. But it's really up to you.
3. Now what you want to do is type in the following command, to change the hostname
hostnamectl set-hostname 'dc.acmebanking.com'
4. Type hostnamectl again to verify that the hostname has been changed
Monday, January 20, 2020
The following steps is how you would create a Windows 2016 Server in the Azure Portal:
1. Log into Azure Portal, and mouse over "Virtual Machines", click on "Create"
Monday, January 13, 2020
The following is how you would create a "Virtual Network" in Azure.
1. Search for "Virtual Network" and click on "Virtual Network", mouse over and click on "Create"
Monday, January 6, 2020
The first thing you want to create after you have an Azure account is to create a "Resource Group" as "Resource Group" as the name implies is an Azure Resource Group, groups all of your resources in a single group so that it's easily managed.
The following steps is how you would create a "Resource Group" in the Azure Portal.
1. Log into Azure portal, and click on "Resource Group" or "More Services" depending on your UI
Tuesday, September 24, 2019
In our previous post we created some user stories. In this post we are going to work on one of the stories:
- As a user I should be able to view my accounts. (2 pts)
It's a simple process, but we know exactly what we have to do with user stories. It's a different mindset than the traditional requirements. The typical requirement that you are used to seeing is
1.1.1 System shall allow the user to view his/her accounts
It's basically saying the same thing, but the first one the user stories is in plain English and it's a lot easier to comprehend. You can take it to the business user, the web designer, or the web developer and it's easily understood. That's the benefit of Agile development.
First let's take the Iffe out of the account.js file so that it's easier to work with and then we want to make changes to the bankController.js file
Here is how the account.js file should now look like.
Here is the code we change in the bankController.js filefunction Account(balance, type) {this.balance = balance;this.type = type;}Account.prototype.deposit = function (d) {this.balance = this.balance + d;return this.balance;}Account.prototype.withdrawal = function (w) {this.balance = this.balance - w;return this.balance;}function inherits(baseClass, childClass) {childClass.prototype = Object.create(baseClass.prototype);}function Premium(balance, type) {this.balance = balance + (balance * .05);this.type = type;}inherits(Account, Premium);Premium.prototype.transfer = function (from, to, amount) {from.balance -= amount;to.balance += amount;from.rebalance();to.rebalance();}Premium.prototype.deposit = function (d) {this.balance = this.balance + d;this.balance = this.balance + (this.balance * .05);return this.balance;}Premium.prototype.rebalance = function () {this.balance += this.balance * .05;}
(function () {'use strict';angular.module('bankController', []).controller('bankController', ["$scope", function ($scope) {$scope.accounts = [new Account(1000, 'Checking'), new Account(10000, 'Saving'), new Premium(100000, 'Premium Checking')];console.log($scope.accounts);}]);})();
Wednesday, September 18, 2019
We'll pretend like we are running a Sprint, we can think of this as a very loose Sprint planning.
Sprint 1 User Stories;
- As a user I should be able to view my accounts. (2 pts)
- As a user I should be view my user profile. (1 pt)
- As a user I should be able to view my account details. (2 pts)
- As a user I should be able to view my past transactions. (1 pt)
- As a user I should be able to view my upcoming transactions ( 1 pt)
- As a user I should be able to search my transactions (2 pts)
- As a user I should be able to transfer money from my account (1 pt)
- As a user I should be able to withdrawal money from my account (1 pt)
- As a user I should be able to deposit money from my account (1 pt)
- As a user I should be able to withdrawal money from my account (1 pt)
Tuesday, September 17, 2019
First let's mock up the home page:
On our home page we have a profile section were we can access our account/profile. Then we have the ACME bank logo/branding, and finally the accounts that we have in the bank.
The next mock-up is the the Accounts Details page, when we click on one of the accounts:
As you can see from the mock-up it's pretty straightforward. You have an identification of the account, then a display of upcoming transactions, and past transactions. There's also a search box for searching of transactions.
Finally we have the Money Transfer screen which enables the users to transfer money into and out of the account. It just has the basic information, where the money is coming from, where it's going to, the transfer date, the amount and the transfer button.
As you can see the mock-up is pretty simple and easy to change. Actually it's just pen and paper. I am a big fan of low-fidelity design. Meaning simple and low effort. We can change it anytime.
Previous: AngularJS SPA: Building The Bank Application JavaScript Objects (Business Entities)
Here are steps to create our first Api:
1. First we want to set up our application to use postman to test out our api. To do that right-click on the project and click on "Properties", in Properties screen click on "Debug" and uncheck "Launch browser" and make a note of the port number of the App URL. We will make the api calls with postman initially to make sure that our api works. Postman has become pretty popular with api development because it allows us to make api calls and see the results. You can get postman here
https://www.getpostman.com/downloads/ I would get the desktop version because it's more robust.
2. Now we are ready to create a ProductController to be our api controller, Asp.NET Core has the api control built-in so we don't have to do anything special for a controller to be a web api controller. So create a file call ProductController in the Controllers folder. The ProductController should have the following code
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using NorthwindCafe.Web.Data;
using System;
namespace NorthwindCafe.Web.Controllers
{
[Route("api/[Controller]")]
public class ProductController : Controller
{
private readonly IProductRepository _repository;
private readonly ILogger _logger;
public ProductController(IProductRepository repository, ILogger logger)
{
_repository = repository;
_logger = logger;
}
[HttpGet]
public IActionResult Get()
{
try
{
return Ok(_repository.GetProducts());
}
catch (Exception ex)
{
_logger.LogError($"Get products failed {ex}");
return BadRequest("Get products failed");
}
}
}
}
The code above is pretty straightforward. You have the define private variables _repository and _logger for the repository to hold the injected objects in the constructor. Then you define a method call Get with the decorator [HttpGet] to handle get requests. The Get() method returns the list of products and retruns Ok = 200 status code if everything is ok and returns a 400 error status code if there's an exception. The other important thing is the [Route("api/[Controller]")] decorator. This is what you typed into the browser. So for this route you would type http://localhost:50051/api/product into Postman.
3. So now we are ready to test our code in Postman, first we need to run our code, press CRTL+F5
Then select "GET" method on Postman call, type in the URL localhost:50051/api/product and you will see the list of products returned in Json, usually the resource in this product should be pluralize, but I forgot the s. So the URLs should be localhost:<port>/api/products but since it's just development we can let it slide. However, if you work with other people you might want to pluralize it.
Sunday, September 8, 2019
- Click on "Server Explorer" tab in the left hand side, then click on "Add Connection"
Saturday, September 7, 2019
CREATE DATABASE Northwind ON (name= 'Northwind', filename = 'C:\Northwind.mdf') FOR ATTACH_REBUILD_LOG;
The query above will create a new database for you call "Northwind", all you have to do is specify the location of the .mdf file and the "FOR ATTACH_REBUILD_LOG" will rebuild the log for you. You might run into a "Access denied" error but it's a permissions issue. Make sure the user that is running the query has permission to the file.











