Blazor Server App Exercise

Exercise Objective

  • Build a Blazor Server App

Notes:
Blazor WebAssembly happens client side where as Blazor Server everything happens server side.
The advantage/disadvantage of this is that Blazor WebAssembly can run offline.
However it comes as a minor cost to performance to run applications offline. The more processing required the heavier the impact of running a stand alone web assembly app.

dotnet cli commands

dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools

Divi/Monarch update twitter logo to latest

Divi/Monarch update twitter logo to latest

First off. What is Monarch.
It’s a premium social sharing plugin for WordPress from Elegant Themes.
Monarch Plugin Documentation | Elegant Themes Documentation

Updating the twitter logo to the new X from Mr Elon Musk.
You first need to upload a new logo to your WordPress website. You can download them here. 

Then you need to add this CSS to your website.
Unfortunately it’s not 100% perfect. But it’s better than the solution I received directly from elegant themes.

li.et_social_twitter:hover i.et_social_icon.et_social_icon_twitter, i.et_social_icon.et_social_icon_twitter {
color: transparent;
  background-image: url(/wp-content/uploads/2024/06/twitter-logo-dark.png) !important;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 35%;
}
.et_monarch .et_social_twitter, 
li.et_social_twitter:hover i.et_social_icon.et_social_icon_twitter,
.et_monarch .et_social_networks.et_social_circle li.et_social_twitter:hover i, 
.et_monarch .et_social_networks.et_social_circle .et_social_twitter i{
  background-color: #ececec !important;
}

Software Developer or Software Engineer?

Software Developer or Software Engineer?

The terms "Software Developer" and "Software Engineer" are often used interchangeably in the tech industry, but there are some distinctions between the two roles based on their scope of work, responsibilities, and focus areas. Here are the key differences:

Scope of Work

  • Software Developer:

    • Primarily focuses on writing and maintaining code.
    • Involved in the development lifecycle, including designing, coding, testing, and debugging software applications.
    • Works on specific applications or functions within an application.
  • Software Engineer:

    • Takes a broader, more systematic approach to software development.
    • Engages in the full software development lifecycle, from initial concept and design to deployment and maintenance.
    • Works on entire systems, infrastructure, and software architecture.
    • Often involved in integrating software with hardware and ensuring the overall system meets requirements.

Responsibilities

  • Software Developer:

    • Write clean, efficient, and maintainable code.
    • Collaborate with other developers and team members to develop software solutions.
    • Focus on implementing features and functionalities as specified in requirements.
    • May handle some aspects of testing and debugging but typically not as comprehensively as engineers.
  • Software Engineer:

    • Design software solutions to solve complex problems, considering scalability, security, and performance.
    • Develop and maintain software architecture and infrastructure.
    • Ensure that software integrates seamlessly with other systems and components.
    • Often involved in project planning, requirement analysis, and risk management.
    • Conduct extensive testing and validation to ensure the system's integrity and reliability.

Focus Areas

  • Software Developer:

    • Application development and feature implementation.
    • Front-end or back-end development, depending on specialization.
    • Writing and maintaining codebases.
  • Software Engineer:

    • System design and architecture.
    • Full-stack development, often with an emphasis on backend and infrastructure.
    • Optimizing systems for performance and scalability.
    • Applying engineering principles to software development, including problem-solving, project management, and analytical skills.

Education and Skills

  • Software Developer:

    • Often has a background in computer science or related fields.
    • Strong programming skills in specific languages (e.g., Python, Java, JavaScript).
    • Proficiency in using development tools and frameworks.
    • Focus on practical coding skills and application development.
  • Software Engineer:

    • Typically has a formal education in software engineering, computer science, or related engineering disciplines.
    • Broad knowledge of computer science principles, software engineering methodologies, and system design.
    • Skills in various programming languages, software architecture, and engineering practices.
    • Emphasis on analytical thinking, problem-solving, and systematic approaches to software development.

Summary

While both roles are crucial in the software development process, software developers are primarily focused on coding and application development, whereas software engineers have a broader scope, dealing with system-level design, architecture, and integrating software with hardware and other systems. The distinction can vary depending on the organization and industry, but these are the general differences between the two roles.

Xampp Setup Multi Site Configuration on Windows

Xampp Setup Multi Site Configuration on Windows

I use this mostly for WordPress & Laravel.
Primarily this is useful for any PHP projects.

Step 1 : 
You need to enable vhosts.
Open C:\xampp\apache\conf\httpd.conf
Find the line inside there that looks like this : 
# Virtual hosts
# Include conf/extra/httpd-vhosts.conf

And remove the # from the include statement.
# Virtual hosts
include conf/extra/httpd-vhosts.conf
---
<VirtualHost *:80>
ServerName leantime.localhost
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/leantime/public"
<Directory "/Applications/XAMPP/xamppfiles/htdocs/leantime/public">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog "logs/leantime.localhost-error_log"
CustomLog "logs/leantime.localhost-access_log" common
</VirtualHost>

Step 2 : 
Enable any php extensions you want to use. 
In the xampp control panel. If you select config on the apache line. Select PHP (php.ini)
This is where you enable php extensions you may need.

Same as before. If you want to enable any extensions. 
Remove the # at the beginning of the line.

Step 3 : 
You need to configure the httpd-vhosts.conf and hosts

Vhosts

Then you need to update https-vhosts.conf with your project directory. 
The file can be found at : 
C:\xampp\apache\conf\extra\https-vhosts.conf

Inside the hosts file for each project you want to add. 

# Virtual Hosts
#
# Required modules: mod_log_config

# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
##NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ##ServerName or ##ServerAlias in any <VirtualHost> block.
#
##<VirtualHost *:80>
##ServerAdmin webmaster@dummy-host.example.com
##DocumentRoot "C:/xampp/htdocs/dummy-host.example.com"
##ServerName dummy-host.example.com
##ServerAlias www.dummy-host.example.com
##ErrorLog "logs/dummy-host.example.com-error.log"
##CustomLog "logs/dummy-host.example.com-access.log" common
##</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/dashboard"
ServerName localhost
</VirtualHost>
####################################
# Sites
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/digi"
ServerName site-name1.localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/coverweb/public"
ServerName site-name2.localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/coverweb/public"
ServerName site-name3.localhost
</VirtualHost>

hosts file

This is located under : 
C:\Windows\System32\drivers\etc
hosts

Open the hosts file with administrative privileges.
Use any text editor of your choice. 

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 192.168.0.1 local.website1.com # Comment here
# 192.168.0.1 local.website2.com # Comment here

# localhost name resolution is handled within DNS itself.
127.0.0.1 localhost
::1 localhost
###########################################
# Sites
127.0.0.1 site-name1.localhost
127.0.0.1 site-name2.localhost
127.0.0.1 site-name3.localhost
###########################################
wsl.localhost
###########################################
# Added by Docker Desktop
192.168.0.106 host.docker.internal
192.168.0.106 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section

Fix C & C General DirectX 8.1 Error + Screen Size

Fix C & C General DirectX 8.1 Error + Screen Size

  • Solution 1 : 
    Go into the game root directory. (The folder that has your generals.exe) and delete the dbghelp.dll
  • Solution 2 : 
    Edit the options.ini file.
    I installed my game through Steam on Windows 11.
    Now it's important to note that on the newer versions of windows.
    Some documents get uploaded automatically to a OneDrive folder.
    This caused a lot of confusion for me because my documents folder with the ini file was empty.
    • There are 2 directories you can check for the Options.ini folder.
      • 1 : C:\Users\User\OneDrive\Documents\Command and Conquer Generals Zero Hour Data
      • 2 : C:\Users\User\Documents\Command and Conquer Generals Zero Hour Data
        • Inside one of those directories. You should find an Options.ini file. 
          Inside the file update your resolution to 800 600
          You can adjust it once the game starts. But just to get the game started update it to 800 600
          --
          AntiAliasing = 18
          CampaignDifficulty = 2
          GameSpyIPAddress = 0.0.0.0
          Gamma = 50
          IPAddress = 0.0.0.0
          IdealStaticGameLOD = High
          LanguageFilter = false
          MusicVolume = 55
          Resolution = 800 600
          Retaliation = yes
          SFX3DVolume = 79
          SFXVolume = 71
          ScrollFactor = 50
          SendDelay = no
          StaticGameLOD = High
          UseAlternateMouse = no
          UseDoubleClickAttackMove = no
          VoiceVolume = 70
  • Solution 3, Also I believe this was my fix for the screen size limitation : 
    Install the C&C GenTool_v8.8.exe
    I can't remember exactly which site I installed this from. I found a link on Reddit.
    I do not take any credit for this tool. I found it online.
    I did not make it. But it did solve my issue. 

CSS Color (Colour) Concatenation

CSS Color (Colour) Concatenation

So I figured this out by mistake and had my mind blow when I saw it. Haha I have been programming with CSS for 7 years and I didn't know this!

I was adjusting default bootstrap checkbox colours and I accidentally typed an additional colour without clearing and it ended up splitting the colours. Looks quite cool! Check how the border splits half half on each side with the colours.

.form-check-input:checked {
    background-color: #000;
    border-color: #000#FFF;
}

Powering IT with Virtualization and Storage Technologies

(VMware vSphere, Microsoft Hyper-V, Proxmox Virtual Environment (Proxmox VE), Oracle VirtualBox, Docker, Kubernetes, FreeNAS, OpenMediaVault, VMware Workstation/Fusion, Microsoft Azure, Amazon EC2, Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), DigitalOcean, Synology DiskStation, QNAP NAS, Western Digital My Cloud)

Virtualization and Storage Technologies for Website Hosting, Website Containerization, Dedicated Storage, and VM Deployments:

  1. Virtualization Platforms:
  • VMware vSphere: Enterprise-level virtualization for server consolidation, high availability, and resource management.
  • Microsoft Hyper-V: Virtualization platform for running multiple VMs on Windows servers.
  • Proxmox Virtual Environment (Proxmox VE): Open-source virtualization with KVM and LXC support for data centers and cloud environments.
  • Oracle VirtualBox: General-purpose virtualization software for testing and development on desktops.
  1. Website Containerization:
  • Docker: Containerization platform for packaging applications and their dependencies for easy deployment and scalability.
  • Kubernetes: Container orchestration system for automating, scaling, and managing containerized applications.
  1. Dedicated Storage Operating Systems:
  • FreeNAS: Open-source NAS OS with support for SMB/CIFS, NFS, and iSCSI, offering data redundancy through ZFS.
  • OpenMediaVault: NAS OS with a web-based interface, supporting various file sharing protocols and plugins.
  1. Virtual Machine Deployment:
  • VMware Workstation/Fusion: Desktop virtualization for testing and development of VMs on personal computers.
  • Oracle VirtualBox: General-purpose virtualization software also used for testing and running VMs on desktops.
  • Microsoft Azure: Cloud platform offering VM deployment and management in the cloud.
  • Amazon EC2: Cloud-based VMs on Amazon Web Services (AWS) for scalable computing.
  1. Cloud Hosting Services:
  • Amazon Web Services (AWS): Cloud computing platform with various services, including EC2 for VMs and S3 for storage.
  • Microsoft Azure: Cloud platform offering VMs, databases, and other services for website hosting and application deployment.
  • Google Cloud Platform (GCP): Cloud services with Compute Engine for VMs and Cloud Storage for scalable storage.
  • DigitalOcean: Cloud provider with Droplets (VMs) and Spaces for object storage.
  1. Network-Attached Storage (NAS) Solutions:
  • Synology DiskStation: NAS solution with a user-friendly interface, supporting various services like file sharing, backups, and media streaming.
  • QNAP NAS: Network storage solutions with comprehensive applications and RAID configurations for data protection.
  • Western Digital My Cloud: Personal cloud storage for home users with remote access to files.

These are some of the popular virtualization and storage technologies used in the IT industry, each catering to specific use cases for website hosting, containerization, storage, and VM deployments.