Tech Junkie Blog - Real World Tutorials, Happy Coding!

Latest Posts

Monday, January 21, 2019

Security Enhanced Linux (SELinux) is a set of kernel medications developed by the NSA and later distributed to the public to secure computer systems.  Most people would disable it on install because it's a pain to work with.  But, if configured correctly it could harden your system considerably.

First let's install all the packages that we need for SELinux with the following yum command

yum install policycoreutils policycoreutils-python selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans

Monday, January 14, 2019

Sometimes you don't want to do everything with the root account.  So there are some super users who you trust as administrators.  For those users you want them to be able to run the sudo command.  A sudo command allows a user to run commands with root privileges without logging in as root.
For example something like this sudo yum update unlike the su command which prompts you for the root password.  The sudo command prompts you for the password of the logged in user.

In order for the sudo to work we have to configure the /etc/sudoers file.  There is a special command for editing the sudoers file and it's the visudo command.  This command should be used at all times when editing the sudoers file instead of a text editor.

Thursday, January 10, 2019

One of the first thing you would do in web development is to link an external Cascading Stylesheet to an HTML document.  As a matter of fact bootstrap would not work if you didn't link the bootstrap.css file in your HTML document.  Linking an external document is easy enough you often see the link like this

    <link href="Content/bootstrap.css" media="all" rel="stylesheet" type="text/css"></link>
    <script src="Scripts/bootstrap.js"></script>

Now let's break it down link attributes, there are four possible attributes for the link tag.

They are the following:
  • rel (required) - Relations, relationship to this page.  For CSS stylesheets its "stylesheet"
  • type (optional) - is the type of the link, "text/css" is the type for CSS stylesheets
  • href (required) - is the location of the resource, it could a relative path or an actual URL like a CDN
  • media (optional) - with this attribute you can specify which media the stylesheet is meant for.  For example the media attribute can have the "projector" value.

Wednesday, January 9, 2019

Up until this point all we did was take care of the plumbing, MongoDB for the database, AngularJS as the application framework, expressJS for hosting, and Heroku as deployment infrastructure in the cloud. Whew! It feels like I am spitting out development hastags and buzzwords.  But, you know what they always say "it takes a village to build a SPA application".  Well they didn't say that, but they should! Who are they anyways?  The software engineer gods?  Or god forbid the mythical "full stack developers!!  Fear them the full stack developers!  But I don't know who they are, you ask.  Well they are just awesome! God says.  They are 10x!  Wow 10x, you said to yourself.  They must be good!  Hahaha  I just love the buzzwords.  It's entertaining.  I would never say I am a full stack developer.  I am just a developer who knows a lot of stuff.

In this post we are going to take a step back and start working on the actual application and take the plumbing out of the equation for a while.

As with any application at the center of it all is the question.  What does the application do?
Since our application is banking application, we will create objects that are in the banking domain.  This is called a domain driven design.  We are not going to follow the domain driven design (DDD) to a T, but we will follow the spirit of it.

Tuesday, January 8, 2019

In this post we are going to install Ninject which is a lightweight IOC container.  You can think of an IOC container as a magic toolbox that gives you the tools that you need when you need it.  Hence its called dependency injection, meaning it injects the dependencies that you need.  As with any IOC container there needs to be a mapping between the interfaces and the implementation.  That's where Ninject comes in.

First let's install Ninject with Nuget. here are the steps:

1. Open the Nuget Management Console and type in the following command

Install-Package Ninject -Version 3.2.2
Install-Package Ninject.Web.Common -Version 3.2.2
Install-Package Ninject.Mvc3 -Version  3.2.1

Monday, January 7, 2019

Friday, December 21, 2018

I think I've gotten rid of all the spams on my blog.  It was quite an effort.  I am not going to be mean about it.  I know the spammers are just trying to do their job.  But just keep in mind that the people who comes to my blog are people who wants to learn about coding.  Heck I come here just for self reference.  So you can still spam is you want.  But, I will delete your spam.  I just hope people will learn from this blog. It's not the bible, but I hope you are interested in coding because of it.

Friday, December 14, 2018

Thursday, December 13, 2018

It is time consuming and a lot of work to set up your own data science virtual machine locally.  If you don't mind the cost, the alternative to is to setup a data science Virtual Machine in Azure and let Azure take care of the plumbing such as the hardware requirements and etc, because a data science Virtual Machine is a little beefier than an regular mainstream laptop.

Monday, October 8, 2018

Monday, October 1, 2018

One of the more useful things are about yum is that it comes with a group install feature.  This basically lets you install groups of packages with one command.  These includes, administration tools, storage, databases, virtualization, and etc.

Tuesday, September 25, 2018

If you have been following along with the ASP.NET MVC tutorials you would have noticed that the URLs have a port next to them.  In this post we are going to get rid of that annoying port have a just the URL as localhost/{mycustomroute}

Monday, September 24, 2018

Yum is a update manager used by CentOS and other RPM-based Linux distributions.  It not only updates and install software from the defined repositories, it also takes cares of the dependencies.

One of the most common task that you will do is to keep your server up to date.  With yum it is quite easy because CentOS comes with many official repositories that enabled by default.  That means for the most part running software updates will not break your existing server.

Monday, September 17, 2018

In the previous post we created a Admin Area, however we had to type in localhost/Admin/Home/Index to get to the Admin index page.  In this post we are going to make the Index page more user friendly.

To do that first let's assign the namespace to a local variable so that we can use it in multiple routes.

Open the "AdminAreaRegistration.cs" file in the /Areas/Admin folder and change the RegisterArea method to the following:


        public override void RegisterArea(AreaRegistrationContext context) 
        {
            var namespaces = new string[] { typeof(NorthwindCafe.Areas.Admin.Controllers.HomeController).Namespace };

            context.MapRoute(
                "Admin_default",
                "Admin/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional },
                namespaces 
            );
        }


Monday, August 27, 2018

Love it or hate it the Eclipse IDE is a comprehensive development tool that rivals or surpasses Microsoft's Visual Studio.  If you are working outside of the .NET stack Eclipse will probably have plug-in for your development platform. I myself find the UI a little bit overwhelming.  But for the price it's a pretty good value, which is free!