My Youtube Channel

Please Subscribe

Flag of Nepal

Built in OpenGL

Word Cloud in Python

With masked image

Saturday, February 3, 2024

Solved: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)


Follow the given steps to solve the issue. The commands here are for CentOS 8. The solution is same for other OS as well so modify the commands accordingly.

Step 1: After the installation of MYSQL is finished, enable and start mysqld as given below:

sudo systemctl start mysqld

sudo systemctl enable mysqld

Once, done also check the status of the mysqld to verify whether it is running or not:

sudo systemctl status mysqld

Step 2: Find the temporary password and copy it using the following command:

sudo grep 'temporary password' /var/log/mysqld.log

You will see something like this:

 A temporary password is generated for root@localhost: ;ND0#VvB0*Mt

Copy the temporary password.

Step 3: Type the following command:

mysql -u root -p

Step 4: When prompted to enter password, just paste the copied temporary password and yes you are done with your task. 

Step 5: Then you can change the password for root using the command:

sudo mysql_secure_installation



Using single Gmail as multiple Gmail addresses | Some hidden secrets of ...

Thursday, February 1, 2024

Steps to install oci8 on centos 8

The following steps is valid for Oracle 11g, you can modify as per your oracle version in a similar fashion.

1. Install the Oracle Instant Client:

   - Download the Oracle Instant Client RPM packages for your architecture from the Oracle website (https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html). You'll need  oracle-instantclient-basic ,  oracle-instantclient-devel and oracle-instantclient-sqlplus packages.

   - Transfer the downloaded RPM packages to your CentOS 8 system if you downloaded them on a different machine.

Note: for centos, it is better to download “.rpm” file rather than “.zip”

2. Install the Oracle Instant Client RPM packages:

Go to the directory where you downloaded the oracle instant-client files and install those files:

Let’s take example for version oracle instant-client 11.2,

sudo dnf install oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm 

sudo dnf install oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64

sudo dnf install oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64

To verify whether the Oracle Instant Client "devel" package is installed on your CentOS system, you can use the package management tool rpm or dnf. Here's how you can check for the presence of the Oracle Instant Client devel package:

Using ‘rpm’:

rpm -qa | grep oracle-instantclient-devel

Using ‘dnf’:

dnf list installed | grep oracle-instantclient-devel

 

3. Verify the ORACLE_HOME environment variable:

echo $ORACLE_HOME

Ensure that the ORACLE_HOME environment variable is set correctly and points to the location where you installed the Oracle Instant Client. If it's not set correctly, you can set it as follows:

export ORACLE_HOME=/path/to/instant/client

During the installation process, you may be prompted to provide the path to the Oracle Instant Client library. If prompted, enter the correct path:

Enter the path: instantclient,/usr/lib/oracle/19.20/client64/lib

 

4. Set the environment variables required for OCI8 and PHP:

 

$ export ORACLE_HOME=/usr/lib/oracle/11.2/client64

$ export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib

sudo ldconfig

Once you are done with above steps, the environment is set for oci8 installation, follow the bellows steps now,

5. Stop Apache and uninstall older version of OCI8 if any (stopping Apache is very important):

 service httpd stop

 pecl uninstall oci8

 

6. Install php-pear and php devel:

 sudo yum install php-pear php-devel

 pear download pecl/oci8

7. The next commands depend on the version of oci8 downloaded above.

$ tar xvzf oci8-2.2.0.tgz

$ cd oci8-2.2.0/

$ phpize

$ export PHP_DTRACE=yes

$ sudo dnf install libnsl

$ sudo dnf install epel-release

$ setenforce 0

 

8. Make sure of the instantclient path below... mine was version 11.2 so it was located in this folder... Also make note some tutorials ask for the ORACLE_HOME folder which theoretically is /usr/lib/oracle/11.2/client64 but if its instantclient then put the lib folder underneath it (worked for me at least:)

$ ./configure --with-oci8=instantclient,/usr/lib/oracle/12.2/client64/lib/

$ make

$ make install

$ sudo pecl install oci8-3.3.0 instantclient,$ORACLE_HOME/lib

$ sudo systemctl restart httpd

$ sudo systemctl restart php-fpm

$ sudo systemctl restart mysqld 

9. NOW an .so file built in: /usr/lib64/php/modules/oci8.so

10. check whether oci8 has been successfully installed or not:

php -m | grep oci8

The steps may not be needed in most of the cases. If indeed, it is required in your case go through these steps as well (though it is suggested to first try running before implementing the below steps):

# THIS STEP NOT NEEDED if SELinux disabled on your server/box, but if SELinux is enabled run: setsebool -P httpd_execmem 1

# NOW add:   extension=oci8.so    at the bottom of your php.ini file (probably in /etc/php.ini)

# Add extension_dir=/usr/lib64/php/modules/


Steps to install HTTPD, PHP, MYSQL and PHPMYADMIN in CentOS 8


Steps to install httpd in CentOS 8

  1. sudo yum install dnf
  2. sudo dnf update
  3. sudo dnf install httpd
  4. sudo systemctl start httpd
  5. sudo systemctl enablr httpd
  6. sudo systemctl enable httpd
  7. sudo firewall-cmd --add-service=http --permanent
  8. sudo firewall-cmd --reload
  9. sudo systemctl status httpd
  10. sudo dnf update

Steps to install PHP in CentOS 8

  1. sudo dnf update
  2. sudo dnf install epel-release
  3. sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
  4. sudo dnf module enable php:remi-8.2
  5. sudo dnf module reset php
  6. sudo dnf module enable php:remi-8.2
  7. sudo dnf module list php
  8. sudo dnf install php php-cli php-fpm php-mysqlnd php-pdo php-gd php-xml
  9. php -v
Steps to install MYSQL in CentOS 8

  1. sudo dnf update
  2. sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8-    3.noarch.rpm
  3. sudo dnf module enable mysql:8.0
  4. sudo dnf update
  5. sudo dnf install mysql-server
  6. sudo systemctl start php-fpm
  7. sudo systemctl enable php-fpm
  8. sudo systemctl restart httpd
  9. sudo systemctl start mysqld
  10. sudo systemctl enable mysqld
Steps to install phpmyadmin in CentOS 8

  1. Sudo dnf install epel-release
  2. sudo dnf update
  3. yum -y update
  4. yum -y install phpmyadmin
  5. dnf --enablerepo=remi install phpMyAdmin
  6. sudo vi /etc/httpd/conf.d/phpMyAdmin.conf
Make sure the phpMyAdmin.conf file looks similar to this:

Alias /phpMyAdmin /usr/share/phpMyAdmin

Alias /phpmyadmin /usr/share/phpMyAdmin

 

<Directory /usr/share/phpMyAdmin/>

   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>

      # Apache 2.4

      <RequireAny>

         Require all granted

      </RequireAny>

   </IfModule>

   <IfModule !mod_authz_core.c>

      # Apache 2.2

      Order Deny,Allow

      Deny from All

      Allow from 127.0.0.1

      Allow from ::1

   </IfModule>

</Directory>

 

<Directory /usr/share/phpMyAdmin/setup/>

7. sudo systemctl restart httpd

8. You can verify the phpmyadmin installation by opening URL:

http://your_server_ip/phpMyAdmin

Alternative way to install phpmyadmin on CentOS 8

  1. sudo dnf update
  2. sudo dnf install tar
  3. sudo dnf install wget
  4. wget https://files.phpmyadmin.net/phpMyAdmin/5.1.3/phpMyAdmin-5.1.3-all-languages.tar.gz
  5. tar xzf phpMyAdmin-5.1.3-all-languages.tar.gz
  6. sudo mv phpMyAdmin-5.1.3-all-languages /usr/share/phpMyAdmin
  7. sudo mkdir /etc/phpMyAdmin
  8. sudo cp /usr/share/phpMyAdmin/config.sample.inc.php /etc/phpMyAdmin/config.inc.php
  9. sudo chmod 660 /etc/phpMyAdmin/config.inc.php
  10. sudo chown -R apache:apache /etc/phpMyAdmin
  11. sudo vi /etc/phpMyAdmin/config.inc.php
  12. add to config.inc.php,
                $cfg['blowfish_secret'] = 'a1b2c3d4e5f6g7h8i9j0';

13. sudo vi /etc/httpd/conf.d/phpMyAdmin.conf

Your phpMyAdmin.conf should be similar to given below,

Alias /phpMyAdmin /usr/share/phpMyAdmin

Alias /phpmyadmin /usr/share/phpMyAdmin

 

<Directory /usr/share/phpMyAdmin/>

   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>

      # Apache 2.4

      <RequireAny>

         Require all granted

      </RequireAny>

   </IfModule>

   <IfModule !mod_authz_core.c>

      # Apache 2.2

      Order Deny,Allow

      Deny from All

      Allow from 127.0.0.1

      Allow from ::1

   </IfModule>

</Directory>

 

<Directory /usr/share/phpMyAdmin/setup/>

14. sudo systemctl restart httpd

 

Note: "vi" command used above is an editor. I hope you know how to use it.

To insert, press i

To exit without saving, press esc then :q! and then enter

To exit along with saving, press esc then :wq! then enter







Tuesday, January 30, 2024

Defining and differentiating Super key and Candidate Key based on two properties

Candidate keys and super keys are concepts in relational database theory that relate to the uniqueness and irreducibility of attributes within a table's schema.

1. **Super Key**:

   - A super key is a set of one or more attributes (columns) that uniquely identifies each tuple (row) within a table.

   - It may contain more attributes than necessary to uniquely identify tuples.

   - A super key must satisfy the uniqueness property, meaning no two tuples in the table can have the same combination of values for the attributes in the super key.

   - Super keys can be minimal (irreducible) or non-minimal (reducible).


2. **Candidate Key**:

   - A candidate key is a minimal super key, meaning it is a super key with the fewest possible attributes.

   - It uniquely identifies each tuple in the table.

   - If any attribute is removed from a candidate key, it loses its uniqueness property.

   - Each candidate key within a table is unique, meaning no two candidate keys contain the same set of attributes.


Now, let's delve deeper into the uniqueness and irreducibility properties that differentiate between candidate keys and super keys:


- **Uniqueness**:

  - Both candidate keys and super keys must guarantee uniqueness.

  - However, candidate keys provide the strongest form of uniqueness because they are minimal and cannot be further reduced without losing the uniqueness property.

  - Super keys, on the other hand, may contain redundant attributes that do not contribute to uniqueness, but they still ensure that each tuple in the table is uniquely identifiable.


- **Irreducibility**:

  - Irreducibility refers to the inability to remove any attribute from a key without losing its unique identification property.

  - Candidate keys are by definition irreducible because they are minimal super keys.

  - Super keys, while they can also provide uniqueness, may include additional attributes that are not strictly necessary for uniquely identifying tuples. Removing these attributes may still preserve uniqueness, making them reducible.


In summary, while both candidate keys and super keys ensure uniqueness, candidate keys are distinguished by their irreducibility, as they represent the smallest set of attributes necessary to uniquely identify each tuple in a table. Super keys, while also ensuring uniqueness, may contain redundant attributes and are not necessarily minimal.


Understanding with example:

Let's consider a simple table representing employees in a company:


**Employee Table:**


| EmployeeID | Name      | Department | Salary |

|------------|-----------|------------|--------|

| 1          | John      | HR         | 50000  |

| 2          | Jane      | IT         | 60000  |

| 3          | Alice     | IT         | 55000  |

| 4          | Bob       | Sales      | 48000  |


**1. Uniqueness:**


- **Candidate Key Example:**

  In this table, the attribute `EmployeeID` serves as a candidate key because it uniquely identifies each employee. No two employees have the same `EmployeeID`.

  Candidate Key: `{EmployeeID}`


- **Super Key Example:**

  A super key could be the combination of `EmployeeID` and `Name`. This combination uniquely identifies each employee, making it a super key. However, it's not minimal because `EmployeeID` alone is sufficient.

  Super Key: `{EmployeeID, Name}`


**2. Irreducibility:**


- **Irreducible Candidate Key Example:**

  `EmployeeID` is an irreducible candidate key because removing any attribute from it would violate uniqueness. If you remove `EmployeeID`, you can't uniquely identify employees anymore.

  Candidate Key: `{EmployeeID}`


- **Reducible Super Key Example:**

  Let's consider the super key `{EmployeeID, Department}`. While it uniquely identifies each tuple, `Department` is not necessary for uniqueness. Removing `Department` still leaves us with a unique identifier.

  Super Key (Reducible): `{EmployeeID, Department}`


In summary, `EmployeeID` serves as both a candidate key and an example of irreducibility. Meanwhile, combinations like `{EmployeeID, Name}` represent super keys but are not minimal due to the inclusion of non-essential attributes.

Candidate Key Vs Super Key : Differentiating with Two Properties in an e...

Monday, January 29, 2024

Interesting and Useful features of Gmail : Use single Gmail account as Multiple email address

Gmail addresses offer several interesting features and nuances beyond the standard email format. Here are a few more:

1. **Dot Ignorance**: Gmail addresses ignore dots in the username. For example, "john.doe@gmail.com" is the same as "johndoe@gmail.com" or "j.o.h.n.d.o.e@gmail.com". They all route to the same inbox.


2. **Case Insensitivity**: Gmail addresses are not case-sensitive. "JohnDoe@gmail.com" is the same as "johndoe@gmail.com". 


3. **Gmail Aliases**: Gmail also supports the use of aliases. You can append a plus sign (+) followed by any additional text to your Gmail address. For instance, emails sent to "yourusername+anything@gmail.com" will still be delivered to "yourusername@gmail.com". This feature is handy for filtering and organizing incoming mail.


4. **Gmail Dot Trick**: While Gmail doesn't recognize dots in the username, they do allow you to use different variations of your email address. This can be useful for signing up for multiple accounts on the same service while only using one email address. For instance, you could sign up for one account as "johndoe@gmail.com" and another as "john.doe@gmail.com", and both emails will still go to the same inbox.


5. **Address Discarding**: If you receive unwanted emails or spam to a particular Gmail address, you can create a filter to automatically delete or archive messages sent to that address. This can help manage your inbox more effectively.


These features provide users with flexibility and control over their email addresses, making Gmail a versatile platform for communication and organization.


Usefulness of such features in day to day life:

The unique features and capabilities of Gmail addresses, including dot ignorance, case insensitivity, aliases, and the dot trick, offer users several practical use cases:

1. **Filtering and Organizing Emails**: By using aliases or the dot trick, users can easily filter and organize incoming emails based on their source. For example, users can sign up for newsletters using "username+news@gmail.com" and automatically filter these emails into a separate folder or label.


2. **Detecting Spam and Unwanted Emails**: Users can easily identify the source of spam or unwanted emails by monitoring which alias or variation of their email address was used. This can help users better manage their inbox and block or filter unwanted senders.


3. **Managing Multiple Accounts**: The dot trick allows users to sign up for multiple accounts on the same service using variations of their Gmail address. This is particularly useful for managing accounts on websites or services that limit the number of registrations per email address.


4. **Tracking Email Signups**: Users can track which websites or services share their email address with third parties by using unique aliases for each signup. If they start receiving spam or unsolicited emails to a specific alias, they can easily identify the source and take appropriate action.


5. **Testing and Development**: Developers and testers can use Gmail aliases to create test accounts or simulate multiple users without the need for separate email addresses. This simplifies testing and development processes while ensuring that all test emails are delivered to a single inbox.


6. **Privacy and Security**: Users concerned about privacy and security can use aliases to share their email address with specific contacts or services without revealing their primary email address. If an alias becomes compromised or starts receiving spam, users can simply delete or disable it without affecting their primary address.


Overall, the unique features of Gmail addresses provide users with greater flexibility, control, and security over their email communications and online activities.

Wednesday, January 24, 2024

BTech Vs BE

Wednesday, January 10, 2024

Detach audio from video in Clipchamp | Also trim audio and video individ...

Thursday, November 2, 2023

Install "PhpSpreadsheet" to handle Excel file in PHP | Library to handl...

Wednesday, November 1, 2023

Solved: Cannot find script file Maintenance.vbs/ StartupCheck.vbs | Wind...

Wednesday, September 27, 2023

Difference between JAVA and JAVASCRIPT

 Java and JavaScript are two distinct programming languages that share a similar name but are used for different purposes and have significant differences. Here's a breakdown of the key differences between Java and JavaScript:


1. **Origin and History**:

   - **Java**: Java was created by James Gosling at Sun Microsystems in the mid-1990s. It


is a statically-typed, compiled programming language that was originally designed for developing applications for embedded systems. It later gained popularity for its "Write Once, Run Anywhere" capabilities.

   - **JavaScript**: JavaScript, often abbreviated as JS, was developed by Brendan Eich at Netscape in the early 1990s. It is a dynamically-typed, interpreted scripting language primarily used for web development. Despite its name, JavaScript has no direct relationship with Java.


2. **Usage**:

   - **Java**: Java is a general-purpose programming language used for various applications, including desktop applications, mobile app development (Android), server-side applications (Java EE), and more. It's known for its platform independence and strong type checking.

   - **JavaScript**: JavaScript is mainly used for web development. It is the primary scripting language for building interactive web pages and web applications, enabling dynamic content, user interactions, and client-side functionality within web browsers.


3. **Typing**:

   - **Java**: Java is statically typed, which means that variable types are declared at compile time, and type checking is done at compile time. This helps catch type-related errors early in the development process.

   - **JavaScript**: JavaScript is dynamically typed, which means that variable types are determined at runtime. Type checking occurs during program execution, which can lead to flexibility but may also introduce runtime errors if not handled carefully.


4. **Execution Environment**:

   - **Java**: Java applications are typically compiled into bytecode and run on the Java Virtual Machine (JVM). This allows Java code to be platform-independent, as long as there's a compatible JVM for the target platform.

   - **JavaScript**: JavaScript is executed directly by web browsers, making it a client-side scripting language. It can also be used on the server side through technologies like Node.js.


5. **Syntax and Semantics**:

   - **Java**: Java has C-like syntax and uses classes and objects for organizing code. It follows a more traditional programming language structure.

   - **JavaScript**: JavaScript has a C-like syntax as well, but it is often described as a prototype-based language. It supports dynamic object creation and manipulation, making it well-suited for building interactive web applications.


6. **Common Libraries and Frameworks**:

   - **Java**: Popular Java frameworks and libraries include Spring, Hibernate, and JavaFX for various application types.

   - **JavaScript**: JavaScript has numerous libraries and frameworks, such as React, Angular, and Vue.js for front-end web development, and Node.js for server-side development.


In summary, while Java and JavaScript share some superficial syntactical similarities, they are fundamentally different languages with distinct purposes, execution environments, and ecosystems. Java is a versatile, statically-typed language used for various applications, while JavaScript is primarily used for building dynamic, interactive web applications.

Tuesday, September 26, 2023

Immutable backup and how it is achieved ?

An immutable backup refers to a type of data backup that cannot be modified, altered, or deleted once it has been created. The term "immutable" implies that the data is protected from any changes, intentional or accidental, for a specified period of time or until certain conditions are met. This concept is commonly used in data protection and disaster recovery strategies to ensure the integrity and availability of critical data.


Here are some key characteristics and benefits of immutable backups:


1. Data Integrity: Immutable backups are designed to prevent data tampering, corruption, or deletion. This helps maintain the integrity of the backed-up data, ensuring that it remains unchanged and reliable for recovery purposes.


2. Ransomware Protection: Immutable backups are an effective defense against ransomware attacks. Since ransomware typically tries to encrypt or delete data, having immutable backups ensures that attackers cannot alter or delete the backup copies, making it possible to restore the data to a clean state.


3. Compliance Requirements: Some industries and regulatory bodies require organizations to maintain immutable backups as part of their compliance and data retention policies. Immutable backups can help organizations meet these requirements by providing a secure and unmodifiable data repository.


4. Legal and Audit Purposes: Immutable backups can be used as evidence in legal proceedings or audits, as they demonstrate that the data has not been altered or tampered with since the backup was created.


5. Data Recovery: In the event of data loss or system failures, immutable backups can be relied upon for data recovery. They provide a reliable source for restoring data to its previous state.


6. Retention Periods: Immutable backups often have predefined retention periods during which the data cannot be deleted or modified. Once the retention period expires, the data may become mutable or can be deleted according to the organization's policies.


Immutable backups are achieved through a combination of technology, policies, and best practices aimed at ensuring that data cannot be modified, altered, or deleted once it has been backed up. Here are some common methods and strategies for achieving immutable backups:


1. **Write Once Read Many (WORM) Storage**: WORM storage systems are designed


to allow data to be written once and read many times. Once data is written to a WORM storage device, it cannot be overwritten, modified, or deleted, making it an ideal choice for immutable backups.


2. **Versioning**: Implementing versioning mechanisms within a backup system allows multiple copies of a file or data to be retained. Each version is immutable, meaning it cannot be altered or deleted. This ensures that previous versions of data can be restored if needed.


3. **Data Encryption**: Encrypting backup data can help protect it from unauthorized access and tampering. Even if an attacker gains access to the backup storage, they won't be able to modify the data without the encryption keys.


4. **Access Controls and Authentication**: Implement strict access controls and authentication mechanisms to prevent unauthorized personnel from making changes to backup data.


5. **Retention Policies**: Establish clear retention policies that define how long backup data should be kept in its immutable state. Once the retention period expires, the data may become mutable or can be deleted based on organizational policies.


6. **Auditing and Monitoring**: Regularly audit and monitor backup systems to detect any unusual activities or attempts to tamper with the data. Log and track all actions related to backup data.


7. **Backup Replication**: Create multiple copies of backups and store them in geographically diverse locations. This ensures redundancy and protects against both data loss and the risk of a single copy being compromised.


8. **Offline or Air-Gapped Backups**: Keep some backup copies completely offline or air-gapped from the network. This makes it nearly impossible for cyberattacks to reach the backup data.


9. **Immutable Backup Solutions**: Some backup solutions and cloud providers offer built-in features for creating immutable backups. These solutions often provide a secure and automated way to achieve immutability.


10. **Regular Testing and Recovery Drills**: Periodically test the restoration process from immutable backups to ensure that the data can be successfully recovered when needed.


11. **Legal and Compliance Compliance**: Ensure that your immutable backup strategy aligns with legal and compliance requirements specific to your industry and region.


The exact implementation of immutable backups can vary depending on the organization's needs, available technologies, and budget. It's crucial to assess the specific requirements and risks associated with your data and design an immutable backup strategy accordingly. Additionally, maintaining documentation and regular reviews of your backup strategy can help ensure its effectiveness over time.

Connect MS SQL Server database with PHP

Saturday, September 23, 2023

Clear recent history and search histrory in windows 10/11 in one GO

Friday, September 8, 2023

Different Bands in Mobile Telecommunication?

Telecom mobile communication systems use various frequency bands to provide wireless services. Different countries and regions allocate specific frequency bands for mobile communication services, and the exact frequency ranges can vary. Here are some of the commonly used frequency bands in mobile communication:



1. **GSM (Global System for Mobile Communications):**

   - GSM 900 MHz: 890-960 MHz (Europe, Asia, Africa, Australia)

   - GSM 1800 MHz (DCS): 1710-1880 MHz (Europe, Asia, Africa)

   - GSM 850 MHz: 824-894 MHz (North America, South America, Caribbean)


2. **UMTS (Universal Mobile Telecommunications System) / 3G:**

   - UMTS Band I: 1920-1980 MHz (IMT, Europe, Asia)

   - UMTS Band II: 1850-1910 MHz (PCS, North America)

   - UMTS Band V: 824-849 MHz (Cellular 850, North America)

   - UMTS Band VIII: 880-915 MHz (GSM 900, Europe, Asia)

   - UMTS Band IV: 1710-1755 MHz (AWS, North America)

   - UMTS Band IX: 1755-1780 MHz (IMT, Europe)

   - UMTS Band X: 2110-2155 MHz (AWS, North America)


3. **LTE (Long-Term Evolution) / 4G:**

   - LTE Band 1: 1920-1980 MHz (IMT, Global)

   - LTE Band 2: 1850-1910 MHz (PCS, North America)

   - LTE Band 3: 1710-1785 MHz (DCS, Europe, Asia)

   - LTE Band 4: 1710-1755 MHz (AWS, North America)

   - LTE Band 5: 824-849 MHz (Cellular 850, North America)

   - LTE Band 7: 2500-2690 MHz (IMT, Global)

   - LTE Band 8: 880-915 MHz (GSM 900, Europe, Asia)

   - LTE Band 12: 699-716 MHz (Lower 700, North America)

   - LTE Band 20: 832-862 MHz (800 MHz Digital Dividend, Europe, Asia)


4. **5G NR (New Radio) / 5G:**

   - 5G NR Band n77: 3300-4200 MHz (C-Band, Global)

   - 5G NR Band n78: 3300-3800 MHz (3.8 GHz Band, Global)

   - 5G NR Band n41: 2496-2690 MHz (2.5 GHz Band, Global)

   - 5G NR Band n71: 600-6000 MHz (600 MHz Band, Global)


Please note that these are general frequency ranges, and specific countries and regions may have variations and additional frequency bands allocated for mobile communication. Additionally, there are sub-bands and carrier aggregation techniques used to combine multiple frequency bands for higher data speeds and capacity in 4G and 5G networks. The exact frequency bands used by a mobile operator depend on licensing and regulatory decisions in the respective countries and regions.

What is FAP and FDC in FTTH Fiber connections?

Let's delve into detail about the differences between FAP (Fiber Access Point) and FDC (Fiber Distribution Cabinet) in the context of Fiber to the Home (FTTH) and fiber-optic networks:


**Fiber Access Point (FAP):**


1. **Function:**

   - FAP is primarily a termination point where individual customer connections are established in an FTTH network.

   - It serves as a demarcation point between the service provider's infrastructure and the customer's premises.


2. **Location:**

   - FAPs are typically located closer to the customer premises, often in outdoor utility boxes or small cabinets.

   - They can be found on the customer's property or in a nearby access point.


3. **Subscriber Connections:**


   - Each FAP usually serves a relatively small number of subscribers, often a single home or a small group of homes.

   - The number of connections per FAP is limited and varies based on the design and capacity requirements of the network.


4. **Components:**

   - FAPs contain the necessary equipment to terminate and distribute the optical signal to individual customer premises.

   - They may include fiber termination panels, splitters, and connectors.


5. **Protection:**

   - FAPs are designed to provide a degree of protection to the optical connections from environmental factors like moisture and dust.


**Fiber Distribution Cabinet (FDC):**


1. **Function:**

   - FDC is a larger distribution point that aggregates multiple FAPs or serves as a central point for fiber distribution in an FTTH network.

   - It provides a hub for connecting multiple customers and distributing signals to various neighborhoods or areas.


2. **Location:**

   - FDCs are typically larger enclosures located in outdoor cabinets or indoor facilities.

   - They are strategically placed at central points within a neighborhood or service area.


3. **Subscriber Connections:**

   - FDCs serve a larger number of subscribers compared to individual FAPs. They are designed to accommodate higher subscriber density.

   - The number of connections supported by an FDC can vary significantly depending on its size and capacity.


4. **Components:**

   - FDCs house more extensive and robust equipment, including optical splitters, patch panels, splice trays, and sometimes active network equipment like switches or routers.

   - They may also include backup power supplies and environmental controls.


5. **Distribution:**

   - FDCs serve as a central distribution point where fiber cables from multiple directions are connected and managed.

   - They often include optical splitters with higher split ratios to serve multiple neighborhoods or areas.


In summary, FAPs are designed for the last-mile connection to individual customer premises and are closer to the end-users, while FDCs serve as central distribution hubs that aggregate connections from multiple FAPs and distribute signals to a larger number of subscribers. The choice between using FAPs and FDCs in an FTTH network depends on the network design, capacity requirements, and the number of subscribers to be served in a particular area.

Why the delivered speed of WiFi (FTTH) is generally lower than the Promised/ Advertised speed?

The difference between the promised (advertised) speed and the actual delivered speed by Internet Service Providers (ISPs) is often influenced by several factors, and the use of optical splitters in FTTH networks is one of those factors. Here are some reasons why the promised and delivered speeds can differ:


1. **Network Congestion:** Network congestion occurs when many users in a particular area or on a network segment are simultaneously using the internet. During peak usage times, the available bandwidth is shared among all users, leading to a decrease in individual connection speeds.


2. **Signal Loss:** As optical signals travel through fiber-optic cables, they can experience some signal loss due to factors like distance and the quality of the fiber. This can affect the delivered speed at the end-user's location.


3. **Splitter Ratios:** The use of optical splitters, as explained earlier, divides the available bandwidth among multiple subscribers. The ratio chosen by the ISP can impact the delivered speed to individual subscribers. If a higher split ratio is used, each subscriber gets a smaller portion of the overall bandwidth.


4. **Service Plan:** Subscribers often choose different service plans with varying speed tiers. The advertised speed represents the maximum potential speed for a given plan. Actual speeds may vary based on the plan selected.


5. **Quality of Equipment:** The quality of networking equipment, including the FAPs, ONTs (Optical Network Terminals), and customer premises equipment, can affect the delivered speed. High-quality equipment tends to perform better.


6. **Distance to Central Office or Data Center:** The distance between a subscriber's location and the central office or data center where the internet connection originates can impact speed. Longer distances may result in lower speeds due to signal attenuation.


7. **Network Design and Management:** The overall design and management of the network by the ISP play a crucial role in ensuring consistent and reliable speeds. Well-designed networks with adequate capacity are less likely to experience significant speed drops.

Use of Optical splitter is one of the commonly found reasons:

Optical splitters in a Fiber to the Home (FTTH) network divide the optical signal and distribute it to multiple subscribers. While they enable multiple connections from a single fiber, they do divide the available bandwidth or speed among those connections. This division of speed is a trade-off that allows service providers to efficiently serve multiple customers using a single optical fiber.


Here's how it works:

1. **Original Speed:** Let's say the optical signal coming into the FAP provides a certain amount of bandwidth, for example, 1 Gbps (gigabit per second).


2. **Splitting:** If a splitter with a 1:4 ratio is used, it will divide the optical signal into four equal parts. Each of these parts would have a maximum potential speed of 1/4 of the original, which is 250 Mbps (megabits per second).


3. **Subscriber Connections:** Each subscriber connected to one of the splitter's output ports will have access to this divided bandwidth, in this case, up to 250 Mbps. The actual speed experienced by a subscriber will depend on various factors, including network congestion and the service plan they've subscribed to.


So, while optical splitters allow for cost-effective and efficient sharing of a single optical fiber among multiple subscribers, they do divide the available speed. However, the divided speed is still typically much faster than what is available with traditional copper-based broadband technologies, and it allows for high-speed internet access for multiple households or businesses sharing the same fiber infrastructure. 

Sunday, September 3, 2023

Difference between LAC ID and Cell ID in telecom (with examples) ?

In the context of telecommunications, "LAC" stands for Location Area Code, and "Cell ID" or "Cell Number" refers to the unique identifier assigned to a specific cell within a cellular network. These terms are commonly used in the context of mobile networks, such as GSM (Global System for Mobile Communications) or UMTS (Universal Mobile Telecommunications System), to manage and locate mobile devices within the network.


1. **Location Area Code (LAC):** The Location Area Code is a numeric code used to identify a geographical area within a cellular network. This area could encompass multiple cells or base stations. Mobile devices register with the network using the LAC to indicate their general location. This helps in efficiently routing calls and messages to the appropriate area. As a mobile device moves from one location area to another, it informs the network by updating the LAC, allowing the network to keep track of the device's approximate location.

Certainly! Let's explain Location Area Code (LAC) and Cell ID with examples:

Imagine a large city divided into several neighborhoods, and each neighborhood is further divided into blocks. In the context of a cellular network, the city represents the entire network coverage area, the neighborhoods represent location areas, and the blocks represent individual cells.


- **City (Entire Network Coverage Area)**: This is the entire coverage area of the cellular network.


- **Neighborhoods (Location Areas)**: Each neighborhood represents a location area within the city. For example, you might have a location area for downtown, another for the suburbs, and so on. Each location area is identified by a unique Location Area Code (LAC). 


    - Downtown Location Area (LAC: 123)

    - Suburbs Location Area (LAC: 456)

    - Industrial Area Location Area (LAC: 789)


- **Blocks (Cells)**: Within each location area, there are multiple cells or base stations. Each cell is identified by a unique Cell ID.


    - Downtown Location Area

        - Cell 1 (Cell ID: 101)

        - Cell 2 (Cell ID: 102)

        - Cell 3 (Cell ID: 103)

    

    - Suburbs Location Area

        - Cell 1 (Cell ID: 201)

        - Cell 2 (Cell ID: 202)

        - Cell 3 (Cell ID: 203)

    

    - Industrial Area Location Area

        - Cell 1 (Cell ID: 301)

        - Cell 2 (Cell ID: 302)

        - Cell 3 (Cell ID: 303)


So, when your mobile phone is in the downtown area, it registers with the network using the LAC "123" to indicate that it's in the downtown location area. When you move to a different location area, like the suburbs, your phone will update its LAC to "456" to reflect its new location.



2. **Cell ID or Cell Number:** Cell ID refers to the unique identifier associated with a specific cell or base station within a cellular network. It's used to distinguish different cells from one another. Each cell in a cellular network is assigned a unique Cell ID, allowing the network to manage handovers (when a device moves from one cell to another) and efficiently route communication to the appropriate cell. Cell IDs are important for optimizing network performance and ensuring seamless connectivity as devices move within the network's coverage area.

Now, let's focus on one location area, say the Downtown Location Area (LAC: 123), and its cells:


- Downtown Location Area (LAC: 123)

    - Cell 1 (Cell ID: 101)

    - Cell 2 (Cell ID: 102)

    - Cell 3 (Cell ID: 103)


As you move around within the downtown area, your mobile device connects to different cells. For example, if you are near a specific intersection, your phone might be connected to Cell 1 (Cell ID: 101). As you move closer to another street, it switches to Cell 2 (Cell ID: 102).


Each Cell ID helps the network keep track of your precise location within the location area, and it ensures that calls, texts, and data are routed efficiently to your specific cell for the best signal quality and network performance.


In summary, LAC and Cell ID are hierarchical identifiers used in cellular networks to manage and pinpoint the location of mobile devices within the network's coverage area. LAC identifies broader location areas, while Cell ID distinguishes individual cells within those areas.

What is a "Cell" or "Cell Tower" in context of telecommunications and how it works ?

In the context of telecommunications and cellular networks, a "cell" refers to the basic geographic unit of coverage provided by a single cell tower or base station. These cells collectively make up the cellular network's coverage area.


Here are the key points about cells in cellular networks:


1. **Cell Towers or Base Stations:** Cellular networks consist of a series of cell towers or base stations strategically placed across a geographical area. Each tower or base station broadcasts a wireless signal over a certain radius.


2. **Cell Coverage Areas:** The area covered by a single tower or base station is referred to as a "cell." This area can vary in size, depending on factors such as population density, terrain, and network design. In densely populated urban areas, cells are often smaller to accommodate more users, while in rural areas, they may be larger to cover more expansive regions.


3. **Cell Identifiers:** Each cell is identified by a unique Cell ID, which is used to distinguish it from other cells in the network. This Cell ID plays a crucial role in tracking mobile devices and managing handovers as they move within the network.


4. **Cellular Handovers:** As mobile devices move within the network, they may transition from one cell to another. This process is known as a "handover" or "handoff." The network ensures that the device stays connected to the strongest and most suitable cell as the user moves, providing seamless connectivity.


5. **Capacity and Load:** The capacity of each cell is limited by the resources available at the cell tower or base station. When too many devices connect to a single cell, it can become overloaded, leading to issues like dropped calls or slow data speeds. To address this, cellular networks use techniques like cell splitting (dividing cells into smaller ones) and load balancing to manage capacity effectively.


6. **Network Coverage:** The collective coverage of all cells in a cellular network forms the network's overall coverage area. By having multiple cells with overlapping coverage areas, cellular networks can provide continuous coverage, even as users move around.


In summary, a cell in a cellular network is a fundamental unit of coverage provided by a cell tower or base station. These cells collectively create a network that allows mobile devices to stay connected and communicate as they move within the network's coverage area. Each cell has a unique identifier (Cell ID) and is responsible for managing the communication needs of mobile devices within its coverage area.


How it works ?

The mobile tower you see in your neighborhood is indeed a part of the cellular network infrastructure. These towers, also known as cell towers or base stations, play a crucial role in providing wireless communication services to mobile devices in the surrounding area.


Here's how it works:


1. **Cell Tower Functionality:** Each cell tower is equipped with antennas and communication equipment that transmit and receive signals to and from mobile devices. These towers are strategically placed to cover specific geographic areas called "cells."


2. **Cell Coverage Area:** The cell tower's coverage area, known as a "cell," is the region within which mobile devices can connect to the tower and use its services. The size of a cell can vary depending on factors like population density and network design.


3. **Cellular Network:** Multiple cell towers are deployed throughout a region to create a cellular network. These towers are interconnected and work together to ensure continuous coverage as mobile devices move around. When a mobile device moves out of the coverage area of one cell tower, it connects to the nearest available tower.


4. **Cell Tower Appearance:** Cell towers can take various forms and sizes. In urban areas, they might be disguised as trees, flagpoles, or building structures to blend into the environment. In rural areas, they may be more prominent, resembling traditional tower structures.


5. **Signal Quality:** The proximity of a mobile device to a cell tower affects signal quality. When you are closer to a tower, you typically have a stronger and more reliable signal, leading to better call quality and faster data speeds.


6. **Cell Tower Identification:** Each cell tower has a unique identifier, and it broadcasts this information as part of its signal. Mobile devices use these identifiers, along with signal strength and other factors, to determine which tower to connect to.


In essence, the mobile tower in your neighborhood is a critical component of the cellular network, enabling you and others in the area to use mobile phones and other wireless devices to make calls, send texts, and access the internet. These towers work together to create a network that provides seamless coverage and connectivity across a wide area.

Difference between FR and PCRF in Telecom industry


**Free Resources (FR):**

In telecommunications, "Free Resources" typically refers to the available resources within a network that can be allocated to different services, applications, or users. These resources can include:


1. **Bandwidth:** The available data transfer rate that can be allocated to various services or applications. For example, if a network has a total bandwidth of 100 Mbps, and 30 Mbps is currently in use, there are 70 Mbps of free bandwidth that can be allocated to other services.


2. **Processing Capacity:** The computing power and processing capacity of network devices such as routers and switches. For instance, a router may have multiple CPU cores, and when some cores are not fully utilized, they represent free processing capacity.


3. **Memory:** The available RAM and storage space within network devices. If a server has 16 GB of RAM and is currently using only 4 GB, there are 12 GB of free memory that can be allocated for running additional applications.


4. **IP Addresses:** In IP networks, the available pool of IP addresses that can be assigned to devices. If a network has a block of 256 IP addresses and only 100 have been assigned, there are 156 free IP addresses.


**Example of Free Resources:**

Suppose you have a telecommunications network with 100 Mbps of available bandwidth. At a given moment, the network is only using 40 Mbps for internet traffic, leaving 60 Mbps of free bandwidth. This free bandwidth can be allocated for other services like video streaming, VoIP calls, or data backups without overloading the network.


**PCRF (Policy and Charging Rules Function):**


PCRF (Policy and Charging Rules Function) is a network component responsible for managing how network resources are allocated based on predefined policies and rules. It plays a crucial role in ensuring that network resources are used efficiently and fairly, and it also handles charging and quality of service (QoS). Here are some examples:


1. **Quality of Service (QoS):** PCRF can prioritize certain types of traffic over others. For example, real-time video conferencing traffic may be given higher priority over email traffic to ensure low latency and a smooth experience for users.


2. **Charging:** PCRF determines how users are billed for their usage. For instance, it can enforce policies that charge users based on the amount of data they consume, the time of day they use the network, or their subscription plan.


3. **Fair Usage Policy:** Many mobile operators have fair usage policies to prevent one user from monopolizing network resources. PCRF can enforce these policies by limiting the bandwidth or data usage of users who exceed certain thresholds.


**Example of PCRF:**

Imagine a mobile data plan that offers 10 GB of high-speed data per month. The PCRF in the network is responsible for tracking the data usage of each subscriber and enforcing the policy. When a user reaches their 10 GB limit, PCRF can throttle their data speed to a lower rate until the next billing cycle begins to ensure fair resource usage and prevent bill shock.


In summary, "Free Resources" refer to available network capacity that can be allocated, while "PCRF" manages how these resources are distributed and utilized based on predefined policies and rules, impacting factors such as QoS and charging.