Wednesday, 9 April 2025

6. A school stores records of Class XII students using a list that contains multiple lists as its elements.

 A school stores records of Class XII students using a list that contains multiple lists as its elements. The structure of each such element is [Student_Name, Marks, MainSubject]. Crate user-defined functions to perform the operations as mentioned below:

(a) Push_student(): To push the Student_Name and Marks of all those students, who have Science as MainSubject, into a Stack StudentInfo
(b) Pop_student(): To delete all items (one at a time) from the stack StudentInfo in LIFO order and display them. Also display "Empty Stack" when there are no items remaining in the stack.
For Example:
If the stored information is:
[['Akansha',98,"Mathematics"],["Priti",96,"Science"],["Garima",99,"Science"],["Ayushi",78,"English"]]
The stack should contain:
[['Priti', 96], ['Garima', 99]]
The output should be:
["Garima",99]
["Priti",96]
Empty Stack

Solution:

def Push_student():
    for S in L:
        if S[2]=="Science":
            StudentInfo.append([S[0],S[1]])
    print(StudentInfo)
    
def Pop_student():
    while StudentInfo!=[]:
        print(StudentInfo.pop())
    else:
        print("Stack is Empty")

Push_student()
Pop_student()




8. Write a program in Python to input 5 words and push them one by one into a list named All.

  Write a program in Python to input 5 words and push them one by one into a list named All.

The program should then use the function PushNV() to create a stack of words in the list NoVowel so that it store only those words which do not have any vowel present in it, from the list All.
Thereafter, pop each word from the list NoVowel and display the popped word. When the stack is empty display the message 'EmptyStack'.
For Example:
If the words accepted and pushed into the list All are
['DRY','LIKE','RHYTHM','WORK','GYM']
Then the stack NoVowel should store
['DRY','RHYTHM','GYM']
And the output should be displayed as
GYM 
RHYTHM 
DRY 
EmptyStack


Solution:

Words=[]
for i in range(5):
    w=input("Enter any word: ")
    Words.append(w)

print(Words)
Stk=[]
V='aeiouAEIOU'

def  PushNV():
    for w in Words:
        c=0
        for v in V:
            if v in w:
                c=c+1
        if c==0:
            Stk.append(w)

def PopNV():
    while Stk!=[]:
        print(Stk.pop())
    else:
        print("Stack is Empty")


PushNV()
PopNV()

5. Priyanka has created a dictionary 'emeployee_data' containing EmpCode and Salary as key value pairs

 Priyanka has created a dictionary 'emeployee_data' containing EmpCode and Salary as key value pairs for 5 Employees of Cyber Intratech. Write a program, With separate user defined function, as mentioned below, to perform the following operations:

(a)  push_emp(): Push all those EmpCode, where the Salary is less than 25000, from the dictionary into a stack 'stk_emp'
(b)  pop_emp(): Remove all the elements from the stack, one at a time, in a Last-In-First-Out(LIFO) manner and displays them. It also displays 'Stack is empty' once all the element have been removed.
For Example:
If the sample content of the dictionary is as follows:
{'E001':15000,'E002':27000,'E003':30000,'E004':15000,'E005':19000}, then the stack 'stk_emp' will contain EmpCode E001, E004, E005 after push_emp(). pop_emp() will pop and display employee record in LIFO fashion and display 'Stack is empty' at last.

Solution:

stk_emp=[]
employee_data={'E001':15000,'E002':27000,'E003':30000,'E004':15000,'E005':19000}

def push_emp():
    for k in employee_data.keys():
        if employee_data[k]<25000:
            stk_emp.append(k)

def pop_emp():
    while stk_emp!=[]:
        print(stk_emp.pop())
    else:
        print("Stack is Empty")



push_emp()
pop_emp()

3. Write a program in Python, with separate user defined functions to perform the following operations on Stack 'City'.

Write a program in Python, with separate user defined functions to perform the following operations on Stack 'City'.

(a) - Push the pin code and name of the city in the stack 'City'
(b) - Display the latest added element in the stack 'City'


Solutions:


City=[]
data=[['Delhi',110001],['Sonipat',152364],['Khatauli',251201]]

def Push_City():
    for i in data:
        City.append(i)
    

def Display_City():
    L=len(City)
    print(City[L-1])

Push_City()
Display_City()

2. A School has created a dictionary containing top players and their runs as key value pairs of cricket team.

 A School has created a dictionary containing top players and their runs as key value pairs of cricket team. Write a program with separate user defined functions to perform the following operations:

(a)    Push the name of the players(Keys) of the dictionary into a stack, where the corresponding runs (value) is greater than 49.
(b)    Pop and display the content of the stack.
For Example
If dictionary has the following values:
Data={'Rohan':40, 'Rihaan':55, 'Tejas':80,'Ajay':90}
The output should be:
Ajay
Tejas
Rihaan


Solutions

S=[]
Data={'Rohan':40, 'Rihaan':55, 'Tejas':80,'Ajay':90}
def Push_Player():
    for k in Data.keys():
        if Data[k]>49:
            S.append(k)

def Pop_Player():
    while S!=[]:
        print(S.pop())
    else:
        print("Stack is Empty")



Push_Player()
Pop_Player()

1. Suppose L = [3, 4, 5, 20, 4, 5], What is L after L.pop()?

 1. Suppose L = [3, 4, 5, 20, 4, 5], What is L after L.pop()?

  1. [3,4,5,20,4]
  2. [3,5,20,4,5]
  3. [3,5,20,5]
  4. Error

Ans: 

1. [3, 4, 5, 20, 4]

Explanation:

>>> L = [3, 4, 5, 20, 4, 5]
>>> L.pop()
5
>>> L
[3, 4, 5, 20, 4]

Sunday, 6 April 2025

How to Host Multiple Next.js Applications on a Single VM with Nginx and Custom Domains

 If you're working with multiple Next.js applications and want to host them all on a single virtual machine (VM) while assigning different domains or subdomains to each, this guide is for you. We'll walk through setting up PM2, Nginx, domain pointing, and even HTTPS using Let's Encrypt.


๐Ÿงฑ Step 1: Set Up Each Next.js Application

1. Build Each App

First, navigate to each app directory and build it for production:

# App 1 cd /path/to/your/nextjs-app1 npm install npm run build # App 2 cd /path/to/your/nextjs-app2 npm install npm run build # App 3 cd /path/to/your/nextjs-app3 npm install npm run build

2. Manage Your Apps Using PM2

Create an ecosystem.config.js file to manage your apps:

module.exports = { apps: [ { name: "app1", script: "npm", args: "run start", cwd: "/path/to/your/nextjs-app1", env: { NODE_ENV: "production", PORT: 4300 } }, { name: "app2", script: "npm", args: "run start", cwd: "/path/to/your/nextjs-app2", env: { NODE_ENV: "production", PORT: 4301 } }, { name: "app3", script: "npm", args: "run start", cwd: "/path/to/your/nextjs-app3", env: { NODE_ENV: "production", PORT: 4302 } } ] };

Start all apps using PM2:

pm2 start ecosystem.config.js

๐ŸŒ Step 2: Install and Configure Nginx

1. Install Nginx

sudo apt update sudo apt install nginx

2. Create Nginx Configuration for Each Domain

Create a configuration file for each app in /etc/nginx/sites-available/.

Example: app1.yourdomain.com

server { listen 80; server_name app1.yourdomain.com ; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }

Repeat the same for other domains like app2.yourdomain.com and app3.yourdomain.com using the corresponding ports.

3. Enable the Sites

sudo ln -s /etc/nginx/sites-available/app1.yourdomain.com /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/app2.yourdomain.com /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/app3.yourdomain.com /etc/nginx/sites-enabled/

4. Test and Restart Nginx

sudo nginx -t sudo systemctl restart nginx

๐ŸŒ Step 3: Point Your Domains to the VM

Log in to your domain provider (e.g., GoDaddy, Namecheap) and update the DNS records:

app1.yourdomain.com[Your VM IP] app2.yourdomain.com[Your VM IP] app3.yourdomain.com[Your VM IP]

Add A records for each subdomain, pointing to the public IP of your VM.


๐Ÿ” Step 4: Enable SSL with Let's Encrypt (Recommended)

1. Install Certbot

sudo apt install certbot python3-certbot-nginx

2. Obtain SSL Certificates

sudo certbot --nginx -d upload.inditechit.com -d app2.yourdomain.com -d app3.yourdomain.com

Follow the prompts to complete the setup.

3. Test Renewal (Optional)

sudo certbot renew --dry-run

✅ Done!

Now you have multiple Next.js apps running on a single VM, each served on a custom domain with HTTPS. Nginx handles the routing via reverse proxy, while PM2 keeps your apps alive and running in the background.

Saturday, 29 March 2025

Class 12 Computer Science 2025 CBSE Question Paper Solution


SECTION - A


1-False

2-C-20

3-D-ValueError

4-B-Break

5-B

6-D

7-is

8-A

9-A-UNIQUE

10-A - 25$$15

11-B

12-A-dict()

13-A-UPDATE

14-B-count()

15-C-FLOAT

16-True

17-C-Repeater

18-D-VoIP

19-Advanced Research Project Agency Network

20-C

21-B



SECTION - B

22:

The return statement in a function is used to send a value back to the caller. If a function does not have a return statement, it returns None by default.


def square(num):

    return num * num


result = square(5)

print(result)  # Output: 25


23.

(i) Syntax Error in Python:

A Syntax Error in Python occurs when the code violates the rules of the Python language. These errors prevent the program from running because Python cannot interpret the incorrect syntax.

Example of Syntax Errors:

  • Missing or Mismatched Parentheses
  • Misuse of Keywords
  • Incorrect Indentation
  • Using Reserved Keywords as Variable Names
  • Missing Colon (:) in Control Statements


(ii) Implicit Type Conversion in Python:

Implicit Type Conversion, also known as Type Promotion, occurs when Python automatically converts one data type into another without explicit intervention by the programmer. 

Example: Integer to Float Conversion

a = 10      # Integer

b = 2.5     # Float

c = a + b   # Integer is automatically converted to Float


print(c)    # Output: 12.5

print(type(c))  # Output: <class 'float'>



24 (i)

(a) D['Raj']

(b) len(D1)


(ii) 

(a) D1.update(D)

(b) D1.pop('Amit')   OR  del D1['Amit']



25 - A - Spade#Diamond

26

def Sum(N):

    S=0

    for I in range(1,N+1):

        S=S+I

    return S

print(Sum(10))



first line me last me : add hoga

second line add hogi S=0

range me (1,N+1) likha jayega isme (0, N+1) bhi likh sakte hai

print wali line me ) add hoga


27 (i)

(a) EMPNO

(b) NOT NULL


(ii) 

(a) Alter table EMPLOYEES modify column BASICSAL float(7,2);


(b) drop table EMPLOYEES



28 

(a) URL - Uniform Resource Locator


(b) PPP - Point to Point Protocol

PPP is a data link layer protocol used to establish a direct connection between two network nodes primarily for dial-up internet access, DSL and VPNs


SECTION - C


31

(a) The new string is: g0n2Ge

(b) 

SYNTAX ERROR of Indentation in the for loop


OR

(If Syntax Error will remove output should be)


[1, 2, 3]

['ONE', 'TWO', 'THREE']

{1: 'ONE', 2: 'TWO', 3: 'THREE'}



SECTION - D


32.

(a)

(i) Select  WNAME, WAGE from worker where WAGE between 800 and 1500;

(ii) Select * from worker where SITEID is NULL;

(iii)  Select WNAME, WAGE, HOURS from worker where TYPE = "Skilled";

(iv) Update worker set WAGE=1200 where TYPE="Semiskilled";


(b)

(i)


 wname   | wage*hours |

+---------+------------+

| Ahmed J |     300000 |

| Anju S  |     156000 |

+---------+------------


(ii)

count(distinct type) |

+----------------------+

|                    3 |

+----------------------


(iii)


max(wage) | min(wage) | type        |

+-----------+-----------+-------------+

|      1500 |       780 | Unskilled   |

|      1200 |       520 | Skilled     |

|      1200 |      1200 | Semiskilled


(iv)


+---------+--------+

| wname   | siteid |

+---------+--------+

| Jacob B |    101 |

| Ahmed J |    103 |

+---------+--------+


34.

(i)  Select * from Articles order by price desc;

(ii) Select * from Articles where YEAR(DOC)= 2020;

(iii) DESC Artists;

(iv)

(a) Select Artists.Name from Articles Join Artists on Articles.A_Code=Artists.A_code Where Articles.Article='Painting';

(b) Select Name from Articles natural join artists where article = 'Painting';


SECTION - E


(i) Server should be placed in PSYCHIATRY Block, because it has the maximum number of computers

(ii) Switch

(iii)


Star Topology based on Server location

OR you can design using BUS topology for minimum distance



(iv)  Router should be placed in PSYCHIATRY Block

(v) 

(a) Telnet

(b) LAN

Sunday, 9 February 2025

เคฒเค•्เคท्เคฏ เค•ा เคจिเคฐ्เคงाเคฐเคฃ


           *!! เคฒเค•्เคท्เคฏ เค•ा เคจिเคฐ्เคงाเคฐเคฃ !!*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

เคเค• เคฌाเคฐ เค•ी เคฌाเคค เคนै, เคเค• เคจिःเคธंเคคाเคจ เคฐाเคœा เคฅा, เคตเคน เคฌूเคขा เคนो เคšुเค•ा เคฅा เค”เคฐ เค‰เคธे เคฐाเคœ्เคฏ เค•े เคฒिเค เคเค• เคฏोเค—्เคฏ เค‰เคค्เคคเคฐाเคงिเค•ाเคฐी เค•ी เคšिंเคคा เคธเคคाเคจे เคฒเค—ी เคฅी। เคฏोเค—्เคฏ เค‰เคค्เคคเคฐाเคงिเค•ाเคฐी เค•े เค–ोเคœ เค•े เคฒिเค เคฐाเคœा เคจे เคชुเคฐे เคฐाเคœ्เคฏ เคฎें เคขिंเคขोเคฐा เคชिเคŸเคตाเคฏा เค•ि เค…เคฎुเค• เคฆिเคจ เคถाเคฎ เค•ो เคœो เคฎुเคเคธे เคฎिเคฒเคจे เค†เคเค—ा, เค‰เคธे เคฎैं เค…เคชเคจे เคฐाเคœ्เคฏ เค•ा เคเค• เคนिเคธ्เคธा เคฆूंเค—ा। เคฐाเคœा เค•े เค‡เคธ เคจिเคฐ्เคฃเคฏ เคธे เคฐाเคœ्เคฏ เค•े เคช्เคฐเคงाเคจเคฎंเคค्เคฐी เคจे เคฐोเคท เคœเคคाเคคे เคนुเค เคฐाเคœा เคธे เค•เคนा, "เคฎเคนाเคฐाเคœ, เค†เคชเคธे เคฎिเคฒเคจे เคคो เคฌเคนुเคค เคธे เคฒोเค— เค†เคंเค—े เค”เคฐ เคฏเคฆि เคธเคญी เค•ो เค‰เคจเค•ा เคญाเค— เคฆेंเค—े เคคो เคฐाเคœ्เคฏ เค•े เคŸुเค•เคก़े-เคŸुเค•เคก़े เคนो เคœाเคंเค—े। เคเคธा เค…เคต्เคฏाเคตเคนाเคฐिเค• เค•ाเคฎ เคจ เค•เคฐें।" 

เคฐाเคœा เคจे เคช्เคฐเคงाเคจเคฎंเคค्เคฐी เค•ो เค†เคถ्เคตเคธ्เคค เค•เคฐเคคे เคนुเค เค•เคนा, ''เคช्เคฐเคงाเคจเคฎंเคค्เคฐी เคœी, เค†เคช เคšिंเคคा เคจ เค•เคฐें, เคฆेเค–เคคे เคฐเคนें, เค•्เคฏा เคนोเคคा เคนै।' เคจिเคถ्เคšिเคค เคฆिเคจ เคœเคฌ เคธเคฌเค•ो เคฎिเคฒเคจा เคฅा, เคฐाเคœเคฎเคนเคฒ เค•े เคฌเค—ीเคšे เคฎें เคฐाเคœा เคจे เคเค• เคตिเคถाเคฒ เคฎेเคฒे เค•ा เค†เคฏोเคœเคจ เค•िเคฏा। เคฎेเคฒे เคฎें เคจाเคš-เค—ाเคจे เค”เคฐ เคถเคฐाเคฌ เค•ी เคฎเคนเคซिเคฒ เคœเคฎी เคฅी, เค–ाเคจे เค•े เคฒिเค เค…เคจेเค• เคธ्เคตाเคฆिเคท्เคŸ เคชเคฆाเคฐ्เคฅ เคฅे। เคฎेเคฒे เคฎें เค•เคˆ เค–ेเคฒ เคญी เคนो เคฐเคนे เคฅे। เคฐाเคœा เคธे เคฎिเคฒเคจे เค†เคจे เคตाเคฒे เค•िเคคเคจे เคนी เคฒोเค— เคจाเคš-เค—ाเคจे เคฎें เค…เคŸเค• เค—เค, เค•िเคคเคจे เคนी เคธुเคฐा-เคธुंเคฆเคฐी เคฎें, เค•िเคคเคจे เคนी เค†เคถ्เคšเคฐ्เคฏเคœเคจเค• เค–ेเคฒों เคฎें เคฎเคถเค—ूเคฒ เคนो เค—เค เคคเคฅा เค•िเคคเคจे เคนी เค–ाเคจे-เคชीเคจे, เค˜ूเคฎเคจे-เคซिเคฐเคจे เค•े เค†เคจंเคฆ เคฎें เคกूเคฌ เค—เค। เค‡เคธ เคคเคฐเคน เคธเคฎเคฏ เคฌीเคคเคจे เคฒเค—ा। เคชเคฐ เค‡เคจ เคธเคญी เค•े เคฌीเคš เคเค• เคต्เคฏเค•्เคคि เคเคธा เคญी เคฅा เคœिเคธเคจे เค•िเคธी เคšीเคœ เค•ी เคคเคฐเคซ เคฆेเค–ा เคญी เคจเคนीं, เค•्เคฏोंเค•ि เค‰เคธเค•े เคฎเคจ เคฎें เคจिเคถ्เคšिเคค เคง्เคฏेเคฏ เคฅा เค•ि เค‰เคธे เคฐाเคœा เคธे เคฎिเคฒเคจा เคนी เคนै। เค‡เคธเคฒिเค เคตเคน เคฌเค—ीเคšा เคชाเคฐ เค•เคฐเค•े เคฐाเคœเคฎเคนเคฒ เค•े เคฆเคฐเคตाเคœे เคชเคฐ เคชเคนुंเคš เค—เคฏा। เคชเคฐ เคตเคนां เค–ुเคฒी เคคเคฒเคตाเคฐ เคฒेเค•เคฐ เคฆो เคšौเค•ीเคฆाเคฐ เค–เคก़े เคฅे। เค‰เคจ्เคนोंเคจे เค‰เคธे เคฐोเค•ा। เค‰เคจเค•े เคฐोเค•เคจे เค•ो เค…เคจเคฆेเค–ा เค•เคฐเค•े เค”เคฐ เคšौเค•ीเคฆाเคฐों เค•ो เคงเค•्เค•ा เคฎाเคฐเค•เคฐ เคตเคน เคฆौเคก़เค•เคฐ เคฐाเคœเคฎเคนเคฒ เคฎें เคšเคฒा เค—เคฏा, เค•्เคฏोंเค•ि เคตเคน เคจिเคถ्เคšिเคค เคธเคฎเคฏ เคชเคฐ เคฐाเคœा เคธे เคฎिเคฒเคจा เคšाเคนเคคा เคฅा। เคœैเคธे เคนी เคตเคน เค…ंเคฆเคฐ เคชเคนुंเคšा, เคฐाเคœा เค‰เคธे เคธाเคฎเคจे เคนी เคฎिเคฒ เค—เค เค”เคฐ เค‰เคจ्เคนोंเคจे เค•เคนा, 'เคฎेเคฐे เคฐाเคœ्เคฏ เคฎें เค•ोเคˆ เคต्เคฏเค•्เคคि เคคो เคเคธा เคฎिเคฒा เคœो เค•िเคธी เคช्เคฐเคฒोเคญเคจ เคฎें เคซंเคธे เคฌिเคจा เค…เคชเคจे เคง्เคฏेเคฏ เคคเค• เคชเคนुंเคš เคธเค•ा। เคคुเคฎ्เคนें เคฎैं เค†เคงा เคจเคนीं เคชूเคฐा เคฐाเคœเคชाเคŸ เคฆूंเค—ा। เคคुเคฎ เคฎेเคฐे เค‰เคค्เคคเคฐाเคงिเค•ाเคฐी เคฌเคจोเค—े। 

*เคถिเค•्เคทा:-*
เคธเคซเคฒ เคตเคนी เคนोเคคा เคนै เคœो เคฒเค•्เคท्เคฏ เค•ा เคจिเคฐ्เคงाเคฐเคฃ เค•เคฐเคคा เคนै, เค‰เคธ เคชเคฐ เค…เคกिเค— เคฐเคนเคคा เคนै, เคฐाเคธ्เคคे เคฎें เค†เคจे เคตाเคฒी เคนเคฐ เค•เค िเคจाเค‡เคฏों เค•ा เคกเคŸเค•เคฐ เคธाเคฎเคจा เค•เคฐเคคा เคนै เค”เคฐ เค›ोเคŸी-เค›ोเคŸी เค•เค िเคจाเคˆเคฏों เค•ो เคจเคœเคฐเค…ंเคฆाเคœ เค•เคฐ เคฆेเคคा เคนै।

✍️✍️✍️✍️✍️✍️✍️✍️✍️✍️✍️✍️✍️

#spsharmag

Wednesday, 15 January 2025

Features of YouTube Shorts

As of October 2024, the maximum length of a YouTube Short is 3 minutes. Previously, the maximum length was 60 seconds. 

Explanation

  • YouTube Shorts are short-form videos that are intended to be highly consumable and quick. 
  • The default length for a YouTube Short is 15 seconds. 
  • A YouTube Short can be a single video or a combination of multiple 15-second clips. 
  • YouTube Shorts are intended to be viewed on mobile devices in a portrait orientation. 
  • YouTube Shorts have a 9:16 aspect ratio and a resolution of 1920 pixels by 1080 pixels. 
  • You can use audio from YouTube's library, other videos, or your own in a YouTube Short. 
  • You can create YouTube Shorts in the YouTube app or upload premade videos. 
  • You can add text, filters, effects, and stickers to your YouTube Short.