Posts

Showing posts from August, 2025

Installing software updates

Software updates fix issues found in that software, some of these issues are critical and some are less important, but nevertheless may become a headache for a person that runs that software. It is a good idea periodically check for software updates and install them. Moreover a personal computer may check for updates periodically. To manage a large fleet of computers updating individual computers may become a nightmare. There are software products that allow for patch management of multiple computers.

Protecting a Windows computer from computer malware

It is important to protect a personal Windows machine from computer malware. There are several types of computer malware, I may explain each type of these later. Windows workstations come preconfigured to use Windows Defender. It is a good antivirus program. For a much bigger list of antivirus programs and their ability to detect in-the-wild viruses please refer to https://www.av-comparatives.org/ web site.

Wired vs. Wireless

Cables of a personal computer may become a trip hazard. Cables of a personal computer need to be well organized. Just like cables of a personal computer need to be organized, cables in a data center need to be organized as well. in order to do so, there cable management products, so it will be possible to organize network cables together if they run outside of a computer rack. Ideally there is one network switch per computer rack, that cables from computers will not run from a rack to a switch that is located in a different rack, and there is fewer number of cables running from that rack. Why not use wireless to eliminate a need for wires altogether? There are three reasons in order to use wires. Speed. Wires offer greater speed over wireless. Reliability. Wires offer greater reliability. Privacy. Wireless card broadcast a signal, so that a person sitting in a car in a parking lot maybe able to intercept this signal. Regular wired network cards don’t do it.

External computer devices

A computer will be useless if it was not possible to enter data to it, or to retrieve data from it. Typical computer devices include the following: keyboard, mouse, monitor, printer, speakers, webcam, scanner a microphone. These are external devices. There are also internal computer devices that extend its functionality. These include the following items: sound card, optical drive a video card. A computer will work without sound card or an optical drive. If motherboard has a graphical chip in it, then a computer will even work without an external video card. I am describing a personal computer here and not a server.

Uninterruptable Power Supply (UPS)

An uninterruptible power supply (UPS) combines both surge protector and power conditioner in it. UPS big feature that it allows for emergency usage of a computer by storing electrical power in the batteries that are in it. Capacity of an UPS is measured in watts or volt amperes. Usual usage of an UPS device is to save the work in a computer quickly and shut it down safely. UPS batteries are not meant for prolonged usage of computer equipment but for accidental spikes and drops of power.

A power sag

A power sag is an opposite of a power spike. If a power spike is a sudden increase in voltage, then power sag is a decrease because n voltage. Power sags may cause a computer to shutdown and the data that it is in it maybe lost. To eliminate impact of power sags an Uninterruptible Power Supply (short form UPS) needs to be used. UPS will prevent not only from power sags but from complete loss of power. Please think of UPS as a battery. It will not last forever, but if UPS is used it has enough time to save the data and safely turn off the computer.

Spikes in voltage

Spikes in voltage are dangerous for computer components because these spikes can damage them. To prevent electric spikes to damage them, it is a good idea to use surge protectors. They look like regular power strips, however these do a lot more.

Electromagnetic interference (EMI)

Electromagnetic interference (EMI) happens in case when a wire runs close to a device that can generate electromagnetic field. An example of that is power supply in a computer. To prevent electromagnetic interference from happening this device must be properly shielded with metal. Metal blocks electromagnetic field.

Merge sort algorithm

Merge sort algorithm is an old one, it was first invented in 40s. Regardless of its age, it is a good one. Another name for this algorithm is a divide and conquer algorithm. It is a way to divide original set into smaller sets and solving the problem from the smaller sets and merging the answers. There are additional algorithms, but I am not going to explain details of these in here because these are less popular. Performance of algorithm may be good for a small set of data, however as the amount of data grows than the algorithm may need to be adjusted. Additionally algorithm performance may depend on if data is sorted or not, and if there are any duplication of data.

Randomization

Randomization is introduction of values in arbitrary order. Why randomization is needed? Please imagine a program that deals with a set of numbers. For example it tries to find a median value. Median value is number that is a middle of a sorted sequence of numbers. If first answer is 42, then randomization may change it. Randomness has a practical implementation in our daily life. For example patients may in random order receive placebo or a new treatment in order to find out effectiveness of that treatment. Computer games will be boring without elements of randomness.

An algorithm

An algorithm in computer science is a set of steps that needs to be taken to solve a specific problem and the proper order of these. An algorithm is not an implementation details but a step above it. An algorithm can be efficient or not. Please think of a loop to find a correct value. It is possible to iterate through all of the values in a sequence or exit this loop after correct value is found. A person needs to think about not only correctness of an algorithm, but about it effectiveness too. Real life example of an algorithm is how a person needs to prepare a soup. It is possible to put vegetables in a pot, however water needs to be added first, without adding water it will be not a soup, but fried vegetables. Hopefully there is a smoke detector in that room.

Electrostatic discharge (ESD)

Electrostatic discharge (ESD) is pulse of voltage running from a person to computer components. ESD can damage computer components. ESD happens because a human that works with a computer and computer itself have different voltages. To make voltages the same and prevent ESD from happening, a person who works with a computer needs to wear ESD strap. One end of ESD strap attaches to a person and another one to a computer. ESD strap usually looks like piece of clothing with a wire, one end of which attaches to a human body and another one to a computer case. The end that attaches to a human body is made of a material that conducts electricity and the end the end that attaches to a computer has a clip with a wire connecting both.

Ergonomics of a computer workplace

A person who work with a computer, spends a lot time with it, therefore a computer desk and a computer chair must be comfortable for a computer engineer. Some people prefer not to sit, but stand at a computer desk. Such desks must be made of an appropriate height.

Computer rooms

Computer room must have cool temperature. Computer components especially CPU generate a lot of heat and reduce this heat proper cooling must be in place. Low temperature maybe uncomfortable for people, therefore computer rooms may be build to be unattended. In addition to low temperature to cool computers, computers will generate a lot of noise, because CPU fans that cool down processors are noisy. Computer rooms may must be cool, but not cold, because cold air will be moist and may cause short-circuiting.

Accessibility options

Many of the operating systems allow to work with these for people with disabilities. This includes making font or mouse cursor bigger to allow for people that have poor vision to work with a computer, or making sound notifications for such people.

Connecting to hardware

Much of the hardware work as is when plugged in. This is done because OS has software control components for many of the common types of hardware. If Operating System does not have support for the device, then the software component needs to be installed manually. This is usually done via installing software that came with the hardware, or via downloading software from hardware manufacturer website.

Hardware

Hardware is a physical component of a computer system. Examples of hardware are CPU (or processor), memory chip, or a network card. There additional hardware components, I am not going to list them all.

Files

Commonly content is stored in files. You are probably familiar with text files or spreadsheets. Files allow for grouping of related data. There are executable files. These files are not data files, but files that allow to launch an application. An example of a data file is a text file.

Services

Services in Windows or daemons in Linux, Mac OS, or BSD systems are applications that do not have user interaction interface. For example a database or mail service can be implemented as a service. User may interact with the content, but not with a service directly. There is no need to interact with these.

Executing programs

There are two options how programs in a computer can be executed. First method is to run programs interactively. There are different ways how it is done, depending on either GUI (Graphical User Interface) is used or CLI (Command Line Interface) is used. When GUI is used, then applications are executed via double clicking their icons. If CLI is used, then these files are executed by specifying their file names. It maybe necessary to specify full path name if that file is not located in a current working directory or path environment variable, that indicates which locations need to be searched for files. Second method is to perform non-interactive execution of a program. Non-interactive execution means that a program is executed on scheduled basis, it is executed as a service in Windows, or daemon in Linux systems, or as a part of OS starting sequence.

History of Linux operating system

Linux kernel, which is a core of Linux Operating system was developed by Linus Torvalds, however modern Linux distributions consist not only of the kernel, but they consist of other packages. These packages are meant for specific function. For example sendmail software is needed to send and receive emails, Apache web server is needed to serve web content. Linux was originally developed for a personal computer using x86 architecture. Nowadays Linux runs not only on personal computers, but it runs on servers. Linux is the base for Android. Chrome OS has roots in Linux. Vast majority of servers in the Internet runs Linux. Embedded systems such as television sticks run Linux. Linux mentality is being an open source. Open source means that you are able to see the source code, make changes, share with others. I will cover details of open source later.  Linux is community supported. It means many people can contribute to development of Linux, and it is not lock in to a single company. Lin...

Printing on a screen in C

Printing on a screen in C is done via printf function. This function takes two arguments. First one is a text that needs to be printed, and second argument is how this text needs to be printed.

Syntax highlighting

Syntax highlighting is a feature of modern integrated development environments and some of text editors geared toward coding is to display different sections of code in different colors.

Alcubierre drive - traveling faster than light

With traditional engines the speed is limited to speed of light. There is famous Einstein’s formula of E = mc^2. Where E is energy needed. This limitation tried to overcome theoretical physicists Miguel Alcubierre. Instead of engine to move a spaceship, is it possible to adjust medium in way that maximum speed will exceed speed of light? https://en.m.wikipedia.org/wiki/Alcubierre_drive

Nested loops

Nested loops are the loops that are placed within each other. First loop is called an outer loop and second loop is called an inner loop. For example it is possible to use nested loops with each cells of a rectangle. One of the loops will be representing horizontal cells, and another loop will represent vertical cells.

Threat actors

Threat actors are individuals that can cause harm to your organization by retrieving and using sensitive information. For example if social security numbers are retrieved, then people that have these can use these to their advantage. YouTube video

Masking

Masking is a process of hiding sensitive information. Mask data maybe replaced with fake data that looks realistic. YouTube video

Tokenization

Tokenization is a way to replace sensitive data with a data from a lookup table. This lookup table needs to be secured. YouTube video

Hashing

If someone is able to retrieve sensitive data, then this sensitive data maybe at risk. There a few methods of how to hide sensitive data. One of the methods is hashing.  Instead of the data, hash of that data is presented. A hash is math operation that takes this data as input and generates a smaller value of that data. Good hashing methods will not have collisions or they will be very rare. Hash collisions are occurrences of two text having the same hash. YouTube video

Data loss prevention systems

Data loss prevention systems prevents leakage of sensitive information. Data loss prevention systems can be of two types: they can either be host or network based. Host based loss prevention system will scan a computer for availability of sensitive data, network based data prevention systems will scan network traffic for presence of sensitive information in wire.  These systems will try to either block or encrypt this data. YouTube video

Most of hacking tools are written for Linux

Most of hacking tools are written for Linux, therefore Linux is a good choice for hacking activities. There are software tools that had been transferred from Linux to Windows, however not all of the features are moved to this operating system. Why Linux is good choice for hacking activities? Linux philosophy is being open source, and a lot of hacking tools use this as an advantage. YouTube video

Linux offers much control for customization

Linux offer more control than Windows operating system for customization, therefore Linux is more suitable for hacking activities because a lot of hacking activities are non-standard. I am not talking about which desktop paper to use, but I am taking about tuning of networking. BSD systems are also customizable, however availability of software tools for BSD systems are much less than for Linux. YouTube video

Linux offers more control for hacking

Even so it is possible to use Windows operating system for hacking, however Linux offers more customization. Much of the hacking activities are non-standard, therefore they require a lot of customization. BSD systems are also customizable, however available of tools for BSD systems make them bad candidates for hacking activities. YouTube video

Linux is preferred for hacking

Linux is preferred for hacking because it is very customizable. Even so it is possible to use Windows operating system, it does not offer same level of customization. BSD operating systems are also customizable, however Linux has a lot more tools for it. YouTube video

Military and espionage

Military can use misconfigured systems in order to get advantage of adversary’s computer resources. Additionally computers can contain sensitive information, if it can be stolen then that military or spies will know what an adversary is working on. They will also not spend much effort to get this information. Military has more funds, therefore tools that military can use can be more sophisticated than an average hacker can use. Objectives of military and espionage are also differ from objectives of a hacker. If a hacker wants to use computing resources or to steal restricted information, than military wants either obtain secret information, or to get an edge over other countries. YouTube video

Vulnerability scanning

Vulnerability scanning is a process of finding weaknesses in configuration or in the software that is used. Vulnerability scanning is needed to be performed on periodic basis because the tool that is used for vulnerability testing may be updated with new ways to detect vulnerabilities in software. System configuration can also be changed over time, therefore periodic vulnerability scanning can help to uncover the issues. YouTube video

Ethical hacking

Ethical hacking also known as white hat hacking is a process of finding vulnerabilities or weaknesses in the software in order to fix these issues and make a system or network more secure. YouTube video

20 million people had used Microsoft’s AI

20 million people had used Microsoft’s AI coding tool with 5 million people in just three months. News article

China is planning to use artificial intelligence to compete with USA

In order to compete with USA, China wants to use AI. News article

Linux kernel

Linux kernel is probably the most important part of a Linux system. It bridges the gap between computer hardware and software, it makes hardware resources available to other applications. Linux kernel is responsible for: Process management. It makes sure proper allocation of system’s hardware resources to software. Memory management. It not only allocates physical memory to a software, but also responsible for allocating swap space. Swap space is disk memory file that can be used as additional memory in a system. Device management. It allows physical devices to communicate with the rest of the system as well as allows system to communicate with this device. System calls. System calls allow software to use hardware resources allocated. An example of a system call is opening a file in a hard drive. It is responsible for system’s security. It ensures that a specific program can only access system’s resources allocated to it. An application cannot arbitrarily start using system’s resources...

Why Linux?

There are a few reasons why Linux can be selected as an operating system of choice: Linux is free. Even so certain distribution may charge for version of Linux, however source code of Linux software must be made free of charge, it is Linux philosophy and the License terms of Linux software. It is popular. Popularity of Linux means that you are probably will find answers to a problem that you experienced. Popularity of Linux means that there is a ton of information available of how to run Linux. This information is available in books, text in the Internet and various videos. Popularity of Linux also means that it is possible to find Linux running in various devices. Linux can run in servers, desktops and laptops, however specific versions of Linux can also run in refrigerators, low power devices such as RaspberryPi. Linux is powerful. It can run desktop applications such as desktop editing software, and it can also run server applications such as web servers, databases and email to list...

CSS syntax

Standalone CSS file has the following syntax for the elements there. First HTML element needs to be listed. Following it in curly brackets needed to be listed properties of this object. Then following colon property needed to be listed values of that property. There could be more than one value there. For example font type to be used. There could be more than one value. If there is more then one value then they need to be separated by comma. In the example of font type to be used if the first font is absent in a system, then next font will be selected. The property will end with a semicolon, and next property can be listed. To include a specific CSS file in HTML document the link section is needed to be added to the head section of the HTML file. href section of that link will point to CSS file that is needed to be used.

Aurora began self driving truck deliveries at night

Aurora began self driving trucks deliveries at night - news article .

Jobs impact by artificial intelligence (AI)

Microsoft did a research and identified potential impact of AI to jobs. Study

CRUD database operations

CRUD is an abbreviation used to remember database operations. CRUD stands for create, read, update and delete.

Reddit wants to become a search engine

Reddit wants to become a search engine. News article

Loops

Loops help perform repetitive activities many times. Loop will repeat so many times as condition for the loop is false. Common loops are “for” loop, while loop and repeat until loop. For loop specifies condition for the loop and alternatively a step for each iteration of loop cycle. By default this step is equal to one and it can be omitted. There two more types of loops. These are repeat until loop and while loop. Repeat until loop will check the condition before the loop cycle and while loop will check the condition at the end of the loop cycle. It is important to modify variable that is used if that loop condition, otherwise it is possible to end up with indefinite loop. Indefinite loop may also happen with a for loop. By default a variable that is used for loop condition will be changed. If that variable value is reverted back or changed inside of that loop than it is possible to have indefinite loop. You are probably familiar with hour glass mouse cursor in Windows or beach ball i...

Caching of data

Caching of data can be used to speed up access to data, instead of getting data from database tables data will be coming from cache. Data stored in cache is often stored in memory this speeds up retrieval operations. If underlying data had been changed then cache records need to be invalidated, otherwise incorrect data will be retrieved. Cache can internal or external. Internal cache is often has limited amount of memory allocated to it. External cache can be much larger in size. Redis is an example of external cache that can be used.

Non-relational databases

Other paradigm of storing data in a database is to use NoSQL database. NoSQL tables are much simpler than SQL tables and faster too, because validation of records is not done by the database but by front-end. The code needs to ensure that record that is being inserted has proper relationships. NoSQL databases are much simpler than SQL databases. If SQL databases require vertical scaling in order to handle additional load, then NoSQL databases can be scaled horizontally by adding more systems. These systems can perform differently, please be aware that slower machines will be performing slower than fast machines. Example of NoSQL databases are: MongoDB, CouchDB.

Relational databases

Relational databases establish relationships between data. For example relational database may have customer table and customer orders table. Customer orders table will be pointing back to the customer table to ensure that record there has corresponding record in customer table. To validate this relationship processing resources must be used, because of it inserting data into database will be slower than NoSQL databases. I will explain NoSQL database next. If there is no corresponding record then insert operation will fail. In order to handle an increased traffic, database server needs to be made performing better. This is often called “scaling up” or “vertical scaling”. Getting a faster computer is often expensive and company needs to migrate data from an existing computer to a better one which is a difficult and task that is very sensitive. If something goes bad, then downtime of systems may be expected. Examples of relational databases are: MySQL, Oracle, DB2, Microsoft SQL.