Posts

Showing posts from October, 2025

Functions

Functions can be used to execute same code over and over again. It is a good programming practice to use functions instead of repeating same code again and again. Functions have a single return value. You can think of a function as obtaining a square root of a number. The number is going to be an input to square root function, the result of square root will be assigned to a variable in a computer or it will be used for additional calculations. Functions have a single return value.

Loop types

Loops can be of different types. Code inside of a loop can be repeated a set number of times. It is known as for loop. Loops can be executed until a specific condition is met. These loops are known as while loop repeat until loop. Different programming languages may have different naming for these loops. In these loops it is needed to set the value of the exit loop variable, or such loops will become infinite loops.

Loops

Running same code over and over again is possible using a loop. Loop can have a fix number of repetitions or can be executed until a specific condition is met. Check for a condition can be performed in the beginning of a loop or after a loop execution is performed.

Linux file system

Linux file system has / (forward slash) as beginning of this structure. All other directories are children of root directory. Root directory need not to be mixed up with a root folder, which is a default folder for root user.

Terminal

In computers a terminal is text only connection to a remote machine. Transferring text data has lower bandwidth requirements than transferring graphics. Terminal data can be encrypted during transfer ir not. Most of the modern Linux systems nowadays encrypt transferred data. Encryption happens using SSH protocol, data transfers unencrypted using telnet protocol. Most of the modern Linux systems use SSH by default.

Output computer devices - part 1

To print an output from a computer a printer is used. A printer can be directly connected to a computer. It is mainly for a personal use, however it is possible to share a printer with other users, or a printer can be a network printer. A network printer can be used by multiple people. Cost of a network printer is higher than of a personal one. Printers come in different formats. Two common formats of a printer are inkjet or a laser printer. Inkjet printers are usually cheaper than laser printers. Another type of a printer is a dot matrix printer. This is a printer where little hammers are hitting an inked ribbon. A dot matrix printers may be used in banks to print a customer copy and one for records. Dot matrix printers are noisy and they are only good for low quality graphics.

Output computer devices - sound

To output sound from a computer it is possible to use speakers. Speakers can be very simple. A personal computer may have only two speakers, or computer speakers can be fancy. Computer speakers can play surround sounds, computer speakers can be both front and back speakers. To play low tones, a computer may use a subwoofer.

Computer components - part 3

Computers need to take an input from a computer user. Common input devices for a computer are a keyboard and a mouse. And yes a computer mouse is not an animal, but a device. Fancy computer input devices will include such things as handwriting input devices or cameras. Even so cameras are built-in in many laptops now days.

Computer components - part 2

Everything else that is connected to a system unit is a perineal. For example peripherals will include such things as a monitor, or a printer that is connected directly to a computer.

Computer components - part 1

The primary component of a computer is a system unit. I am talking about personal computers here and not the mobile devices. System units can be of different sizes. Size of a system unit depends on how many devices you want to put inside of one, system units can plain metal case or they can have a window to look through. Size of a system unit and how fancy it is depends on how thick your wallet is.

Android development - part 1

Software needed - IntelliJ IDE It can be downloaded free of charge at  Jetbrains web site Java JDK. JDK stands for - Java development kit. It can be downloaded free of charge at  Oracle web site

Variables

In programming variables contain values that can be changed. For example a variable can be current speed of the car. Naming of variables needs to make sense. Naming a variable with a short name such as b will work, however it will not be descriptive. Typing variables names need to adhere to one specific variable naming standard. There are multiple variable naming standards available. 

Software constants

Declare and use software constants is a good programming practice because software constants are descriptive unlike plain numbers. Software constants are defined once and can be used in many places of code, if software constants are not used, but numbers specified instead, then the code needs to be modified in multiple places. Use of constants simplifies the code. Software constants explain code better then use of numbers.

Installing software updates

Software updates fix errors in software. Humans write software and humans are not perfect, they make mistakes. Example of softwsre patches that we may refer to are Windows software updates. There could be of two types: an update that is specific to a problem, or bundle of updates. In Windows world these are known as service packs. Software updates are not limited to Windows operating system and to the applications that run in it  Software updates are released also for other operating systems and applications. When a software update is released, it needs to be well tested so a fiv will not result in even bigger problem.

Different types of testing

There are different types of testing, I will try to explain common types. Unit testing - this is not testing of the entire application, but testing of the part of the application. Regression testing makes sure that code changes do not impact previously known good functionality.  Acceptance testing is a testing that changes are upto specs that were defined.

Testing software

It is a good idea to test software changes. Software testing need to be rigorous or well done. Dedidicated software testing team may be perform8ng software testing, or software testing can be done by software developers. It depends which type of software development tactics will be,chosen. Software changes may cause a serious impact on users, therefore an environment where the least impact on users needs to be chosen 

Raw data

Raw data is not processed in any way data. Examples of raw data may be that is rain poorly in Sahara desert, or a bus in my bus stop is running always late. Without additional details raw data is almost useless. It would be better to say that a bus is usually late to my bus stop on average by 5 minutes. Such information maybe useful to adjust bus,schedule.

What is IDE?

IDE stands for Integrated Development Environment.

Virtualization

Free virtualization can be achieved via use of VirtualBox software. Please be avare that virtual machines will not have same performance as physical machines.

Atlas browser released

ChatGPT had released their own browser called Atlas .

Free code camp

 Free code camp YouTube channel

Self guided path to computer science

Self guided path to computer science GitHub link

10 things to turn off in Windows to improve performance and privacy

It is possible to improve performance and privacy of Windows installation. Youtube video

Linux shell

Linux shell is an environment for running Linux commands as well it is an interpreter to run commands in a batch file. Popular shells are bash shell, C and Z shells.

A script

A script is a series of commands to execute. Advantages of scripts are: performance - commands in scripts can be executed much quicker than these commands can be executed by hand, repeatedly - scripts allow for better execution a sequence of steps. Scripts are environment dependent.

root user in Linux

root user in Linux OS is a privileged user. This user has administrator rites in the machine therefore root user access needs to be well protected. An opposite of root user is a regular user, that can use the system, but not modify it. Regular user can modify files that this user had created.

Home directory in Linux

Home directory in Linux OS is a default folder where users files are located. By default home directory is located in /home/username folder.

Case sensitivity of different operating systems

Windows operating system is not case sensitive operating system, however Linux, BSD variants and MacOS are case sensitive.

Binary files

Binary files are the files that a person cannot understand, but a machine can. Advantage of binary files that they are smaller in size and often operations to use them is quicker than to work with text files.

Business applications

Business applications allow to perform functions related to running a business. Such applications can be split into the following categories: Database applications - allow for storage and fast retrieval of the data. Finance applications allow for managing money. Project management applications allow to manage projects and tasks related to that project. Business-specific applications, such applications are tailored to a specific industry.

Software types

Software can be divided into several categories. These categories are: Productivity software. Productivity software is the software that helps to write documents, make presentations or manage data in a spreadsheet. Collaboration software helps people to communicate. Email, chat or video conference applications are examples of communication software type. File storage applications allow a user to save and store documents for later retrieval. File storage applications may have functionality to share such documents with other users. Screen sharing applications allow other user to take control or watch the screen of a remote computer. Video conferencing software allows to establish video calls with one or multiple users. Instant messaging applications allow fast communications between two or multiple people. More advanced applications include video call functionality. Email applications allow for collaboration between two or more people by sending email messages.

Types of applications depend on where they are installed

Types of applications will vary upon where an application is installed. There may be desktop applications, such applications usually feature rich, mobile applications that are installed on mobile devices such as mobile smartphones or tablets, and web applications that are accessible via the Internet.

Advantages of web applications

There are couple of advantages of the web applications: Availability of such an application to multiple people. Application needs to account for that. Updating an application will impact multiple people. There is one (or several) places where a web application is installed, there is no need to go from one computer to another one in order for updated functionality to be available to all these people.

Backup verification

It is necessary not only perform backups, but it is needed to ensure that they work. It is needed to verify not only functionality of backups, but it is needed to verify that proper files are included in the backups.

Physical location of data backups

Ideally you want to have your business critical data to be stored in a different physical location. In case that something happens with a primary location then data will be safe at a different location. Other location needs to be safe from fires and other natural disasters.

Backup frequency

You need not only worry that correct files are backed up, but you need to worry about freshness of the data. A correct file maybe backed up, but it maybe too old. Good backup will refresh changed or newly created files on a frequent basis, it maybe daily schedule.

Online data storage

Data can be stored online too. There are a number of file backup services available. I will not cover them in here. Advantage of using online backups that the files will stored at a different location. Having a separate location for your business is a costly option.

Data replication

Important data can be moved to a different location. If a natural disaster event happens at a primary location, then data can be safely used from a different physical location.

Backing up data to external media

Important files can be backed up to external media. In an event that something catastrophic happens to a computer, then files will be intact in the file backup. The only files that will be problematic to retrieve are the files which were created after last backup and a new backup time window. It is necessary to ensure that important documents are included in a file backup.

File level permissions

In Windows OS it is possible to set permissions at a file or folder level who can access them. It is done via right-clicking a file (or group of files), or a folder and setting user level permissions from the window that opens. Deny permissions have precedence over allow permissions, therefore this option needs to be used with care.

Sorting a file listing

In Windows file explorer it is possible to sort the list of files in ascending or descending order based on the name of the files, type, date modified, size. It can be useful. For example it is possible easily find the largest file in a folder. If folder contains subfolders, then file size will not be calculated for subfolders, only files will be sorted by size that are in the current folder.

Searching files with a specific file name in Windows

File Explorer application allows to search for a file name. File name can be not a complete one, but a partial one. Files that match search condition will be shown in this window.

Temporary deletion of files in Windows OS

When file in Windows GUI is deleted, by default it is send to the recycling bin. Recycling bin is place for temporary storage of deleted files. Files can be restored from the recycling bin. It can be the same location where these files were or can be a new one.

Moving a file

Moving a file on the same partition is a quick operation, because information about just location of this file needs to be updated in file record. If a file needs to be moved from one partition to another one then performance of such operation will be similar to copying this file and then deleting it. Because this is exactly what happens behind the scenes when this file is moved from one partition to another one. There are multiple ways how a file can be moved from one place to another one. In GUI a file (or group of files) can be moved using cut-and-paste operation, or these files can be dragged to a new place.

Opening a file in Widows OS

Opening a file in GUI is done via double clicking a file. If the file is executable then this application will launch. If a file is a document that can be opened with another application and relationship between this file type and the application is made, then this application will open this file.

Folder and file size

It is possible to view a file size. It can be done via graphical file utility or a text one. A folder is just an entry in file partition table, therefore it does not contain a size of its own. Folder size is a sum of all files that are in it.

File attributes

At least in Windows OS it is possible to view and modify some of the file attributes. This is done by right clicking the file and visit properties of that file.

Maximum file size in NTFS partition

Maximum file size in NTFS partition is 16 exabytes. This is a very big number. You will not be able to find drives that are so large in size.

Encryption of files

Files can be encrypted with Windows feature of encrypting content of a file. If another user on the same system tries to access an encrypted file then such user will not be able to open such a file.

File compression

At least Windows OS and Mac OS offers on-the-fly compression of files. On the fly compression is not same as compression using file compression utilities, it has lower compression ration, but it is fast. At least in Windows OS compressed files and folders are shown with a different color in file explorer, so a user will know that these files are compressed. It takes slightly longer to open a compressed file than uncompressed because this file needs to be decomposed first before the content of such a file is available to the user.

Virtualization

Virtualization is splitting hardware resources so that multiple virtual machines can use them. Virtualization can be of two types. Virtualization can ether be as an application or as a hypervisor. Hypervisor acts as own operating system. Part of system resources are allocated to a virtual machine, so if you have resource intensive application such as database then it is a bad candidate for virtualization. Good candidates for virtualization are web servers, mail servers, etc. Careful analysis of utilization needs to be done before virtualization. A benefit of virtualization is that hardware resources are virtualized making it easier to transfer applications from host to host. Two common applications for virtualization are VirtualBox and VMWare. VirtualBox is an application that can be installed in an OS.

Imprecision of math operations

Mathematical operations in a computer may be not precise. For example dividing one by three shoulf return number zero and infinite number of 3s. Computer languages like C may provide an incorrect value for such operations, this problem manifests more rare in programming languages like python.

Numerical limits

Code may have a limitation ok upper and lower limits for integer numbers. For numbers in a 32 bit environment this limit is about 4 billion. Roughly 2 billions are allocated for positive numbers and roughly -2 billions are allocated for negative numbers. If that limit is reached than an application may have an integer overflow error. Different numeric data types will have different upper and lower limits. If your application requires larger numbers than what integer data type provides, than please consider using a different data type for integers that has higher upper and lower limits.

No value

In programming it is possible to indicate absence of a value by specifying null value. Null is different from an empty string in a way that string an empty value, null is absense of amy value including an empty one.

Naming variables

Coding style does not impact functionality or performance of the code, but it impacts readability of the code. For example it is possible to name variables x and y, but it is ambiguous and it will be unclear for another user to understand code without spending significant time understanding what the code does. A good practice is to name variables by the things they represent. For example number of people, or maximum speed on the road.