Syntax | سینتکس
3K subscribers
421 photos
111 videos
35 files
391 links
Download Telegram
Syntax | سینتکس
📶 Get Saved Wi-Fi Passwords ⭕️این کد یک اسکریپت پایتون است که با استفاده از دستورات سیستم عامل ویندوز (netsh)، اطلاعات مربوط به شبکه‌های Wi-Fi موجود در رایانه را جمع‌آوری می‌کند و نام‌ها و رمزهای عبور آن‌ها را در یک فایل متنی ذخیره می‌کند. #code #python…
import subprocess
import re

# Get all the Wi-Fi profiles (ssid)
out = subprocess.check_output("netsh wlan show profiles").decode()

# Filter out only profile names from the output
matches = re.findall(r"(All User Profile)(.*)", out)

# List comprehension to remove any \n \r \t and spaces
profiles = [str(match[1]).split(":")[1].strip() for match in matches]


# File object to store passwords with ssid
with open("passwords.txt", "w+") as f:

    # Traversing each profile
    for profile in profiles:
        # try/except block to keep the script from crashing if there was an error while execution
        try:
            # Get password using key=clear flag
            get_pass = subprocess.check_output(
                f'netsh wlan show profile "{profile}" key=clear'
            ).decode()

            # Filter out the Password line from the output
            pass_by_profile = re.search(r"(Key Content)(.*)", get_pass)

            # Check if the password is present or wi-fi was open
            if pass_by_profile:
                password = pass_by_profile.group().split(":")[1].strip()
            else:
                password = "THE WIFI IS OPEN"

            # Write the profile name and password to the text file
            f.write(f"{profile} : {password}\n")
        except Exception:
            continue
👍81
bytes buffer and string builder

یکی از انواع داده ای که در اکثر زبان‌های برنامه نویسی وجود دارد و در استفاده از آن باید دقت داشته باشیم نوع string است.

قطعه کد زیر را در نظر بگیرید:
    var query string = "select "
query += "name, family "
query += "from "
query += "users "
query += "where 1 = 1 "
query += "and name = `ali` "
db.Execute(query)


زمانی که نیاز داریم تا مقدار یک رشته را تغییر دهیم نوشتن به این روش اشتباه می‌باشد. دلیل آن در این نهفته است که هر دفعه که شما این رشته را تغییر می‌دهید فارغ از متغیر پیشین یک فضای جدید در حافظه برای آن رزرو می‌شود. بنابراین این قطعه کد memory efficient نیست.

در بسیاری از زبان‌ها برای چنین مسایلی از string builder استفاده می‌شود. در گو هم string builder را داریم و هم bytes.Buffer.

این ساختارها از byte slice در پشت صحنه استفاده می‌کنند و تغییرات را روی آرایه داخلی اعمال میکنند. در نتیجه نیاز به رزرو فضاهای زیاد ندارند و memory efficient‌تر خواهند بود.

strings.Builder :
    var sbQuery strings.Builder
sbQuery.WriteString("select ")
sbQuery.WriteString("name, family ")
sbQuery.WriteString("from ")
sbQuery.WriteString("users ")
sbQuery.WriteString("where 1 = 1 ")
sbQuery.WriteString("and name = `ali` ")
db.Execute(query)

bytes.Buffer :
    var btQuery bytes.Buffer = bytes.Buffer{}
btQuery.WriteString("select ")
btQuery.WriteString("name, family ")
btQuery.WriteString("from ")
btQuery.WriteString("users ")
btQuery.WriteString("where 1 = 1 ")
btQuery.WriteString("and name = `ali` ")
db.Execute(query)

حالا تابع indent را در نظر بگیرید این تابع قرار است تغییرات زیادی را در خطوط مختلف یک رشته (byte array json) اعمال نماید. پس مناسب است از بافر استفاده شود و به همین خاطر تابع مورد نظر یک bytes.Buffer دریافت می‌کند و خروجی را در آن قرار می‌دهد.

تفاوت bytes.Buffer و strings.Builder در این است که bytes.Buffer عمومی‌تر می‌باشد ولی strings.Builder برای رشته استفاده می‌شود.



برای تمرین هر کدوم از بچه‌ها که میتونه یک بنچمارک بنویسه و در یک حلقه بزرگ مقدار موجود در یک رشته رو تغییر بده و همین کار رو یکبار با استفاده از bytes Buffer و strings Builder هم انجام بده و نتیجه مصرف memory رو با ما به اشتراک بذاره

#string

@Syntax_fa
👍6🔥5
مرورگر تحت ترمینال
با استفاده از دستور links میتونید ادرس های خودتونو توی ترمینال ببینید و توی بخش های مختلف بچرخید و کلیک کنید مث یه وب براوزر (به صورت مینیمال البته).
مثلا توی عکس خروجی links h4mid-hosseini.ir رو میبینید.

@syntax_fa
👍2🔥2👌2
‏ابزار sqlmap چیست؟

ابزار sqlmap با زبان برنامه نویسی پایتون با هدف SQL Injection نوشته شده است.

اس کیو ال مپ یک ابزار تست نفوذ اوپن سورس است که فرایند تشخیص و بهره برداری از تزریق SQL و به دست گرفتن سرورهای پایگاه داده را خودکار می کند.



این ابزار به صورت پیشفرض روی کالی نصب شده است.

ویژگی های این ابزار
پشتیبانی کامل از MySQL، Oracle، PostgreSQL، Microsoft SQL Server، Microsoft Access، IBM DB2، SQLite، Firebird، Sybase، SAP MaxDB، Informix، MariaDB، MemSQL، TiDB، CockroachDB، HSQLDB، H2، MonetDB، Apache Derby، Amazon Redshift، Vertica، Mckoi، Presto، Altibase، MimerSQL، CrateDB، Greenplum، Drizzle، Apache Ignite، Cubrid، InterSystems Cache، IRIS، eXtremeDB و سیستم های مدیریت پایگاه داده FrontBase.
پشتیبانی کامل از 6 روش تزریق دیتابیس : boolean-based blind, time-based blind, error-based, UNION query-based, stacked queries و out-of-band
پشتیبانی از اتصال مستقیم به بانک اطلاعاتی بدون نیاز به رمز عبور از طریق تزریق SQL ، با تهیه کردنشیال های DBMS ، آدرس IP ، نام پورت و نام پایگاه داده

@syntax_fa
👍5
https://t.iss.one/chiibekhonim

برای خودمونه کانالش دوس داشتید جوین شید کتاب بهم بدیم ❤️
👍3🔥21
معرفی وب سایت
https://transform.tools/

توضیح:
با استفاده از این وب سایت میتونید به سادگی ساختار های مختلف رو به ساختار های دیگه انتقال بدید.

برای مثال توی عکس اومدیم json رو به struct تبدیلش کردیم

#transform_tools

@Syntax_fa
👍5
وقتی کدت زیادی درست کار میکنه😂😱


#fun

@Syntax_fa
😁17🤣9🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
رامین ۲۴ سالشه و ۶ ساله که در حوزه برنامه نویسی فعالیت داره و به تازگی از طریق جاب آفر به سوئد مهاجرت کرده و در این قسمت توضیح میده که از کجا و چطوری یادگیری برنامه نویسی رو شروع کرده؟

https://www.youtube.com/watch?v=_55_UBJ6F6M&t=1479s

https://t.iss.one/TwitterImmigrant

روشی که میگه رو دقیقا منم انجامش میدم. به زبان انگلیسی تسلط نداشته باشیم بنظرم خیلی سرعت یادگیری رو کم میکنه اگه از همون اولش با انگلیسی اموزش ببینیم
اولش یه دوره و اموزش فارسی ببینید بعدش منابع اصلی و انگلیسی زبان

@Syntax_fa
👍112🌚2
📝جمع بندی متد های set در پایتون
#پارت_اول


📍متد add
این متد برای اضافه کردن آیتم به set به کار می رود.
_ نکته: در این متد اگر عنصری که قصد اضافه کردن آن را دارید از قبل وجود داشته باشد، پایتون از اضافه کردن آن خودداری می کند.

دارای یک پارامتر ورودی است که در جدول زیر آن را بررسی می کنیم.


📍متد clear
این متد تمام آیتم های موجود درون set را به طور کامل حذف می کند.

فاقد پارامتر ورودی می باشد.


📍متد copy
این متد یک کپی از set مورد نظر ایجاد می کند.

فاقد پارامتر ورودی می باشد.


📍متد difference
این متد یک مجموعه جدید برگشت می دهد که حاوی آیتم های یونیکی است که در مجموعه اول وجود دارد ولی در مجموعه دوم وجود ندارند است
دارای یک پارامتر ورودی است


📍متد difference_update
این متد آیتم های تکراری در دو مجموعه را حذف می کند.
_ این متد با متد difference() متفاوت است زیرا در متد difference() یک مجموعه جدید ساخته می شود و آیتم تکراری از آن حذف می شود و مجموعه اصلی دست نخورده باقی می ماند اما در این متد آیتم تکراری از مجموعه اصلی حذف می شود.
دارای یک پارامتر ورودی است
#methods
#python

@Syntax_fa
👍6
چرا گولنگ توی چین محبوب و پر استفاده هستش؟

https://news.ycombinator.com/item?id=8872400#:~:text=More%20and%20more%20companies%20are,It%20just%20fills%20the%20gap.

خلاصه:
تو چین یکی از مشکلاتی که دارن اینه کسب و کارشون ممکنه با رشد خیلی زیادی مواجه بشه(با توجه به جمعیتی که دارن).
برای همین زبانی مثل گو که پرفورمنس خوبی داره و قابلیت اسکیل کردنش خوبه، به یکی از گزینه های محبوب و کارساز تبدیل شده‌.

#go

@Syntax_fa
👍17
📌معرفی کتابخانه Requests در پایتون :

‼️کتابخانه requests یکی از محبوب‌ترین کتابخانه‌های استفاده شده در زبان برنامه‌نویسی پایتون برای ارسال درخواست‌های HTTP است. این کتابخانه به برنامه‌نویسان امکان می‌دهد تا با استفاده از متدهای مختلفی مانند GET، POST، PUT، DELETE و... درخواست‌های HTTP را به سرورها ارسال کنند و نتایج را دریافت کنند.

‼️کتابخانه requests یک رابط ساده و آسان برای کار با پروتکل HTTP است. با استفاده از این کتابخانه، می‌توانید درخواست‌های HTTP را به سادگی ایجاد کنید، پارامترها و هدرها را تنظیم کنید و پاسخ‌های دریافتی را بررسی کنید.

‼️برای استفاده از کتابخانه requests، ابتدا باید آن را نصب کنید. می‌توانید از ابزار مدیریت بسته‌های پایتون مانند pip استفاده کنید:


pip install requests
بعد از نصب، می‌توانید کتابخانه را در برنامه‌ی پایتون خود وارد کنید و از توابع و کلاس‌های آن استفاده کنید.


#معرفی_کتابخانه
#python

@Syntax_fa
👍6
#تمرینات_مقدماتی_پایتون
#قسمت_چهارم

🚥 تمرین پایتون

امنیت اجتناب ناپذیر:

🏷 رادین می‌خواهد برای امنیت سایت خود، برای هر کاربر یک آی‌دی تصادفی و امن ایجاد کند.

برنامه ابتدا باید لیستی از آی‌دی‌های موجود را دریافت کرده و سپس یک آی‌دی جدید و امن ایجاد کند و خروجی دهد.

آی‌دی امن باید شامل ۵ کاراکتر عددی و حروف(a تا Z) تصادفی(random) باشد و نباید درون لیست آی‌دی‌های موجود از قبل، وجود داشته باشد

مثال

ورودی:
["123AB", "12Abc", "Ab12c"]
خروجی:
"Qwer1"


در ورودی لیستی شامل آی‌دی‌های موجود از قبل وجود دارد، در خروجی باید یک‌ آی‌دی امن که درون لیست ورودی وجود نداشته باشد چاپ شود.


#practice

@Syntax_fa
👍8👎1
♨️معرفی سایت تم هایvscode :

https://vscodethemes.com/?type=dark&sortBy=updatedAt

تم هاش خیلی خوشگلن پیشنهاد میکنم حتما یه نگاه بندازید😍🔥

#vscode
#python

@Syntax_fa
7
حل مسئله و الگوریتم

قراره هر شب حدود ساعت ده یک مسئله رو توی کانال قرار بدم تا با هم حلش کنیم.

اول از همه مسئله های وب سایت leetcode رو قرار میدم تا با هم حلش کنیم.

از مسائل مبتدی شروع میکنیم تا برسیم به سخت ترین ها.
هدفمون اینه تا آخر سال 1402 حدود 90 تا مسئله رو با هم بررسی کنیم و کلی حل مسئلمون رو تقویت کنیم 🔥

بهترین جواب هر مسئله فرداش توی کانال قرار میگیره.

پس اگه دوست دارید حتما هشتگ problems رو از این به بعد دنبال کنید

(جواب مسئله با زبان پایتون و یا گو قرار میگیره)

#problems

@Syntax_fa
🔥25👍7
🖥 کد ساخت دوربین امنیتی OpenCV Python :

🔹این کد یک برنامه است که دوربین را فعال می‌کند و تشخیص چهره و بدن انسان را در ویدیویی که توسط دوربین ضبط می‌شود، انجام می‌دهد.
اگر تشخیص داده شود که چهره یا بدنی در ویدیو وجود دارد، برنامه شروع به ضبط ویدیو می‌کند. پس از تشخیص از بین رفتن چهره یا بدن، برنامه تا 5 ثانیه دیگر ادامه می‌دهد و سپس ضبط را متوقف می‌کند.

🔹 ویدیوهای ضبط شده با فرمت mp4 و با نام‌های مختلف برای هر زمان ضبط شده‌اند.

🔺به طور خلاصه، این برنامه قابلیت تشخیص چهره و بدن انسان را در ویدیو فراهم می‌کند و در صورت تشخیص، ویدیویی را ضبط می‌کند.

#code
#python

@Syntax_fa
Syntax | سینتکس
🖥 کد ساخت دوربین امنیتی OpenCV Python : 🔹این کد یک برنامه است که دوربین را فعال می‌کند و تشخیص چهره و بدن انسان را در ویدیویی که توسط دوربین ضبط می‌شود، انجام می‌دهد. اگر تشخیص داده شود که چهره یا بدنی در ویدیو وجود دارد، برنامه شروع به ضبط ویدیو می‌کند.…
import cv2
import time
import datetime

cap = cv2.VideoCapture(0)

face_cascade = cv2.CascadeClassifier(
    cv2.data.haarcascades + "haarcascade_frontalface_default.xml")
body_cascade = cv2.CascadeClassifier(
    cv2.data.haarcascades + "haarcascade_fullbody.xml")

detection = False
detection_stopped_time = None
timer_started = False
SECONDS_TO_RECORD_AFTER_DETECTION = 5

frame_size = (int(cap.get(3)), int(cap.get(4)))
fourcc = cv2.VideoWriter_fourcc(*"mp4v")

while True:
    _, frame = cap.read()

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    bodies = face_cascade.detectMultiScale(gray, 1.3, 5)

    if len(faces) + len(bodies) > 0:
        if detection:
            timer_started = False
        else:
            detection = True
            current_time = datetime.datetime.now().strftime("%d-%m-%Y-%H-%M-%S")
            out = cv2.VideoWriter(
                f"{current_time}.mp4", fourcc, 20, frame_size)
            print("Started Recording!")
    elif detection:
        if timer_started:
            if time.time() - detection_stopped_time >= SECONDS_TO_RECORD_AFTER_DETECTION:
                detection = False
                timer_started = False
                out.release()
                print('Stop Recording!')
        else:
            timer_started = True
            detection_stopped_time = time.time()

    if detection:
        out.write(frame)

    # for (x, y, width, height) in faces:
    #    cv2.rectangle(frame, (x, y), (x + width, y + height), (255, 0, 0), 3)

    cv2.imshow("Camera", frame)

    if cv2.waitKey(1) == ord('q'):
        out.release()
        cap.release()
        break

cv2.destroyAllWindows()

#@Syntax_fa
😱92👍2
📌معرفی کتابخانه opencv در پایتون :

📍کتابخانه cv2 یا OpenCV (Open Source Computer Vision) یک کتابخانه متن‌باز است که برای برنامه نویسی بصری در زمینه بینایی ماشین و پردازش تصویر استفاده می‌شود.

📍OpenCV
ابزارها، توابع و الگوریتم‌های مختلفی را برای تشخیص الگوها، تشخیص چهره، استخراج ویژگی‌ها، پردازش تصویر و ویدیو، و بسیاری از وظایف مرتبط با بینایی ماشین فراهم می‌کند.

📍با استفاده از کتابخانه cv2 می‌توانید عملیات مختلفی روی تصاویر و ویدیوها انجام دهید، از جمله خواندن و نوشتن تصاویر و ویدیوها، تبدیل فضای رنگی، تشخیص ویژگی‌ها و الگوها، تعیین نقاط کلیدی، تطبیق الگو، تعیین وضعیت و جهت، تغییر اندازه و پیوستگی تصاویر، و بسیاری دیگر از عملیات پردازش تصویر.

📍کتابخانه cv2 به زبان پایتون پیاده‌سازی شده است و با استفاده از آن می‌توانید در پروژه‌های پایتون خود از قابلیت‌های پردازش تصویر استفاده کنید.


برای نصب کتابخونه opencv از دستور زیر استفاده کنید :
pip install opencv-python


#معرفی_کتابخانه
#python

@Syntax_fa
👍5
1. Two Sum
مسئله ی اول:

یک آرایه داریم و یک target
کاری که باید بکنید این است درون آرایه، اندیس دو عدد را پیدا کنید که جمع(داده) آنها مساوی با target شود و این جفت عدد(اندیس) را در output نشان دهید.
اگر جفت عدد پیدا نشد در خروجی [0, 0] را نمایش می‌دهیم.

یعنی داده‌ی اندیس x به علاوه داده‌ی اندیس y برابر شد با target، خروجی: [x, y]

ورودی: nums = [2,7,11,15], target = 9

خروجی: [0,1]

توضیحات: زیرا nums[0] + nums[1] == 9، و ما [0, 1] نمایش می‌دهیم.

(آرایه را در پایتون همان لیست در نظر بگیرید.)
(متغیر target یک عدد است که از ورودی دریافت می شود.)

بهینه ترین کد فردا قرار میگیره(همراه با توضیح جواب رو توی کامنت ارسال کنید تا بهترین جواب با اسم خودتون قرار بگیره)


#Problems

@Syntax_fa
👍11👎1
Syntax | سینتکس
1. Two Sum مسئله ی اول: یک آرایه داریم و یک target کاری که باید بکنید این است درون آرایه، اندیس دو عدد را پیدا کنید که جمع(داده) آنها مساوی با target شود و این جفت عدد(اندیس) را در output نشان دهید. اگر جفت عدد پیدا نشد در خروجی [0, 0] را نمایش می‌دهیم. …
یکی از روش های خوب و پر سرعت:

میایم یک مپ(دیکشنری) تعریف میکنیم.
درون آرایه پیمایش میکنیم.
اولین قدم چک میکنیم عددمون فاصلش با تارگت چقدره‌ (یکی از اشتباهاتی که بعضی از دوستان کردن این بود که چک کردن اگه عدد از target بزرگ تر بود کلا بیخیالش شه بره بعدی اما ممکنه عدد منفیم تو لیست باشه. پس هر کی اینکارو کرده تست رو رد نمیکنه)

بعد از اینکه بدست آوردیم که عددمون چقدر با target فاصله داره. توی دیکشنری دنبال اون عددی میگردیم که عنصر ما با اون جمع بشه مساوی با تارگت میشه.
توی دیکشنری اعداد رو به این صورت ذخیره میکنیم
{value: index}
سرچ درون لیست با o(1) انجام میشه.
اگه توی دیکشنری نبود عنصر رو با ایندکسش توی دیکشنری اضافه میکنیم و به پیمایش ادامه میدیم

تو بهترین حالت کمتر از o(n) هستش و تو بدترین حالت o(n) میشه.

مثال توی پایتون:
class Solution(object):
def twoSum(self, nums, target):
checked = {}
for index, num in enumerate(nums, start=0):
index2 = checked.get(target - num)
if index2 is not None:
return [index2, index]
checked[num] = index
return [0, 0]


مثال توی گو:
 Go
func twoSumWithMakeMapAndExtraAssign(nums []int, target int) []int {
checked := make(map[int]int)
for index, num := range nums {
complete := target - num
if _, ok := checked[complete]; ok {
return []int{checked[complete], index}
}
checked[num] = index
}
return []int{}
}


نکته:
از نظر مصرف memory بهینه نیست. روش بهینه تر رو توی کامنت ها بگید.

#Problems

@Syntax_fa
🔥9👎21👍1
هشت تا از پروژه اپن سورس ترند گیت هاب

1. esProc SPL
این یک زبان برنامه نویسی جذاب و جدید برای محاسبات داده است که می تواند به عنوان یک database با کارایی بالا عمل کند.

با استفاده از esProc SPL، می‌توانید آن را به‌عنوان یک پایگاه داده تحلیلی یا میان‌افزار اجرا کنید و هزاران داده ساختاریافته یا نیمه‌ساختار یافته را برای تجزیه و تحلیل مجموعه‌های داده عظیم محاسبه کنید.


2. screenshot-to-code
28 هزار تا ستاره گرفته و به سرعت رو به رشده!!
یک اسکرین شات بسازید و آن را به کد (HTML/Tailwind CSS، React یا Vue یا Bootstrap) تبدیل کنید. با استفاده از GPT-4 Vision و DALL-E 3، یک پروژه واقعا شگفت انگیز!

3. plane
19 هزار ستاره.
جایگزین منبع باز برای ابزارهای مدیریت پروژه مانند Jira یا Linear. مسائل، اسپرینت ها و نقشه راه محصول.

4. pocketbase
27 هزار ستاره
بک اند پروژه با Go. قابلیت اشتراک، فایل ها، مدیریت کاربر، رابط کاربری Admin، و REST API ساده.

5. daisyui
27 هزار ستاره
کتابخانه component منبع باز برای Tailwind CSS. دارای بیش از 55 تا component بصورت built-in برای استفاده.

6. superduperdb
1 هزار ستاره
چارچوب منبع باز برای ادغام هوش مصنوعی در پایگاه داده شما برای آموزش مدل مقیاس پذیر و جستجوی برداری.

7. lencx/ChatGPT
44 هزار ستاره
برنامه اپن سورس چت جی بی تی برای دسکتاپ(ویندوز، مک و لینوکس)

8. javascript-algorithms
178 هزار ستاره
منبعی برای یادگیری الگوریتم و ساختمان داده در جاوااسکریپت.

#web_sites

@Syntax_fa
👍7😁1