Chapi Dev Talks
8.54K subscribers
950 photos
108 videos
12 files
596 links
My name is Chapi and I am a Developer.

I post my thoughts about tech here.

Message to our assistant to give U Feedback: @sophiservebot

Join https://t.me/chapidevtalks_group

Urgent? Contact Me: @chapimenge (Don't say hi or ask Meta Questions )
Download Telegram
😍 Team Untitled - ASTU have completed their registration.
We wish you all the best ❀️🫢

#ACPC2023 #acpc #etcpc2023 #etcpc #ICPC #ASTU
❀18πŸ‘1πŸŽ‰1
Let's talk about async/await a little bit.

The way async await works is it will not wait until the operation complete and hang other execution (if any) untill async task are completed.

Most IO bound tasks like opening files, networks tasks, we can't determine their speed based on *CPU speed so we can't just wait for these task to complete and stop the execution there like *most programming language does.

So when we work with IO bound tasks the best thing we can do is don't wait for the task to be completed if the remaining task is not dependent on it.

For example if the user registers and you want to send an email for confirmation you really don't need to wait for the email to be sent to respond to the user.

Because you can just send the email and don't wait for the email sending operating to be completed.

import asyncio

def register(...):
....
asyncio.create_task(
send_email, ...)
...
return...
#asyncio part 1
✍5❀1⚑1🀯1
Chapi Dev Talks
To clarify this more in a simple python code. This does resembles the actual code by just waiting yet the same thing happens in real codes too. #asyncio part 2
In JavaScript if you don't await it, it automatically will make it promise which will resolve by its own when it finish in background. That will give you a lot more Flexibility when you work on async.

I don't know much about JavaScript on how under the hood operates so please correct me if am wrong

#asycio
πŸ‘6⚑3
Chapi Dev Talks
To clarify this more in a simple python code. This does resembles the actual code by just waiting yet the same thing happens in real codes too. #asyncio part 2
Good Scenarios for Async Programming

There are many scenarios that we can leverage async programming to our work flow and i want to mention some of them.

Backend Services
- Notifying users is a really good choice if you can make it async. Ex: Sending emails, sending push notifications, etc.
- Processing data in the background. Ex: Processing a large file, processing a large amount of data, etc.
- Long running task operation that can be done in the background. Ex: Generating reports, etc.

Example in Action

# Accepting CSV file and processing it in the background
from fastapi import FastAPI, File, UploadFile, BackgroundTasks
import asyncio

app = FastAPI()

process_status = {} # use database in production

async def process_id_generator():
...

async def process_csv(process_id: int, file: UploadFile):
# Do some processing
await asyncio.sleep(5)
process_status[process_id] = "success"
return


@app.post("/upload")
async def upload_file(file: UploadFile = File(...)):
asyncio.create_task(process_csv(file))
return {"status": "processing"}

# this uses fastapi background task scheduler to process
@app.post("/upload-fast-bg")
async def upload_file_fast_bg(file: UploadFile = File(...) , background_tasks: BackgroundTasks):
process_id = await process_id_generator()
background_tasks.add_task(process_csv, process_id, file)
return {"status": "pending", "process_id": process_id}

@app.post("process-status/{process_id}")
async def process_status(process_id: int):
return {"status": process_status.get(process_id, "not found")}

What we make here is, we are accepting a csv file and add the process to be processed in the background yet the user don't have to wait for that request to be the task completed. We can also check the status of the process by using the process id.

If the above were async, the user would have to wait for the process to be completed and that would be a bad user experience.

#asyncio part 3
why dont you follow me in X

https://twitter.com/chapimenge3
😁11πŸ‘Œ2
I was working reading more about how DNS Resolve works and that shit is so annoying, so far i only knows how to resolve the domain using

A Query 😭

import socket
import struct

def dns_resolver(domain_name):
# DNS server (Google's Public DNS)
dns_server = '8.8.8.8'
dns_port = 53

# Create a UDP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# Pack the DNS query
query = build_dns_query(domain_name)

# Send the DNS query to the DNS server
sock.sendto(query, (dns_server, dns_port))

# Receive the DNS response
response, _ = sock.recvfrom(1024)
print('response', response, _)

# Parse the DNS response
ip_address = parse_dns_response(response)

return ip_address

def build_dns_query(domain_name):
# DNS header
header = struct.pack('!HBBHHHH', 0, 1, 0, 1, 0, 0, 0)

# DNS question section
question = b''
for part in domain_name.split('.'):
question += struct.pack('!B', len(part))
question += part.encode('utf-8')
question += b'\x00' # End of domain name
question += struct.pack('!H', 1) # Query type A (IPv4)
question += struct.pack('!H', 1) # Class IN (Internet)
return header + question

def parse_dns_response(response):
# Parse the response to extract the IP address
ip_address = '.'.join(str(byte) for byte in response[-4:])
return ip_address

# Example usage
domain_name = 'blog.chapimenge.com'
ip_address = dns_resolver(domain_name)
print(f'The IP address of {domain_name} is {ip_address}')


This can resolve the domain or not


RFC: DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION
Hello,

...My future wife your prayer is being heard you can stop now ...
By Beka


Save me from indomi I already graduated.
🀣20❀3πŸ‘2
🀣12😁2πŸ‘Ž1
makes me happy when i got 500 in very popular site for some reason πŸ˜‚
😁15⚑1
If you really wanna found out a website all his subdomain this tool might be really amazing

Requirements:
- Go

go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
subfinder -d example.com --silent | ~/go/bin/httpx --silent -sc --title


if the last command give you an error like the subfinder command not found use the below command for quick fix

 ~/go/bin/subfinder -d example.com --silent | ~/go/bin/httpx --silent -sc --title

for long term fix just add the ~/go/bin to your PATH variable in your .bashrc file like below

PATH=$PATH:~/go/bin

This project is from Project Discovery which is amazing org that have a lot of project you can use for recon(specially on bug bounty)

I hope you like it and if you have any question comment it and we can get it work for you.
πŸ‘5
You won't belive what i found πŸ˜‚

I found that in one of the big company i found their development server and found their new ai chat bot in development mode 😜

DAMN PEOPLE
😁8πŸ‘€2πŸ‘1
Good Morning My people,

Just finished reading the openai article about elun musk.

https://openai.com/blog/openai-elon-musk

Thank you Dagmawi for posting this article.

My opinion is as much as elun musk have a point on how openai might cheat the system by avoiding huge chunks of tax they have legismate reason to not disclose their science.

But what I really admire Elun on this is he makes twitter algorithm open sourced and nothing happens to twitter this is how he thinks.

People have different perspectives let alone in a large scale we constantly fight with in a small groups of people.

At the end of the day either you be the big player or you take what you can from the fight πŸ˜†.

Personally I am enjoying and using what I can as much as possible.

You don't have to live to make everyone happy like you see openai couldn't even make Elun musk happy 😜.

Have a delightful day 😊.
πŸ†4
This is too funny 10 years ago people were shitting on NodeJs πŸ˜‚.

This video is from years back https://youtu.be/5lJXb-yym0Y
😁3πŸ‘1
Frectonz Channel Discussion
ask and you shall receive, did it to typescript
He did It again the one and only bababooye

@frectonz
🀣1
Is the time.sleep CPU bound or Io bound?

If you don't know what CPU bound and Io bound is in short

CPU Bound - is something that use cpu intensively something like factorials which keeps calculating the value it doesn't depend on any other resources.

IO Bound - is something that waits for other resources to finish like you sending requiest to database server to get the data.

This is a very high level explanation for you to understand it.

Now when you do time.sleep(10) is it IO bound or CPU bound task?
❀1
This is crazy πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
Forwarded from Pavel Durov (Pavel Durov)
πŸ‘¨β€πŸ’» This week we launched the first batch of Telegram Business features. Users can now convert their personal Telegram accounts into business accounts. As a result, they will be able to add their location and opening hours, organize chats with color labels, use automatic greeting/away messages and shortcuts for quick replies.

That’s just the start β€” we are shipping more Telegram Business features this month. One of these features will revolutionize how people interact with chatbots. Telegram Business accounts will be able to seamlessly add chatbots as their invisible secretaries to respond to all or certain chats. With AI, these chatbots can bring customer service automation to an entirely new level.

The new Bot APIs for developers will become available later this month, all for free. Stay tuned β€” more exciting stuff is coming for businesses and developers on Telegram this season.
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘7❀6⚑1
This media is not supported in your browser
VIEW IN TELEGRAM
The earth when you code using

Python JavaScript ....
😁13🀣6