یه چیز عجیب تو جاوااسکریپت که برای بار اول برام عجیب بود😅
اگه تو Js بنویسید:
چی برمی گردونه؟
خوب طبیعتاً باید "null" بگه ولی "object" میگه😐
در حالی که null اصلا Object نیست!
داستانش چیه؟
یه باگ که الان شده رفتار Js
#javascript
Channel • @local4host
اگه تو Js بنویسید:
typeof null
چی برمی گردونه؟
خوب طبیعتاً باید "null" بگه ولی "object" میگه😐
در حالی که null اصلا Object نیست!
داستانش چیه؟
داستانش برمیگرده به سال 1995، وقتی که جاوااسکریپت تازه ساخته شده بود. اون زمان نحوه ذخیره نوع دادهها تو حافظه یه جوری طراحی شده بود که null اشتباهی به عنوان object شناخته شد.نتیجه؟
بعدش فهمیدن باگه… ولی مشکل اینجا بود که اگه درستش کنن، کلی سایت و کد قدیمی از کار میافته.
یه باگ که الان شده رفتار Js
#javascript
Channel • @local4host
👍5❤1
🧩 معرفی کتابخانه customtkinter در پایتون بهتر از Tkinter!
کتابخانه tkinter که به صورت پیشفرض روی پایتون نصبه و میتونید باهاش برنامههای گرافیکی بسازید ولی ظاهرش خیلی قدیمیه و بیشتر شبیه برنامههای ویندوز XP هست
ا tkinter بدرد برنامه های گرافیکی پیشرفته نمیخوره اینجاست که کتابخانه customtkinter وارد میشه!
🖥نمونه کد:
✅ ظاهرش مدرن و تمیزه
✅ از Dark Mode هم پشتیبانی میکنه
🌐 برای یادگیری بیشتر:
Customtkinter
#python #tkinter #customtkinter
@local4host
کتابخانه tkinter که به صورت پیشفرض روی پایتون نصبه و میتونید باهاش برنامههای گرافیکی بسازید ولی ظاهرش خیلی قدیمیه و بیشتر شبیه برنامههای ویندوز XP هست
ا tkinter بدرد برنامه های گرافیکی پیشرفته نمیخوره اینجاست که کتابخانه customtkinter وارد میشه!
🔥 customtkinter چیه؟📦 نصب کتابخانه:
اcustomtkinter یه نسخهی مدرنتر و خوشگلتر از tkinter هست که سال 2021 معرفی شد.
با همون منطق و ساختار tkinter کار میکنه، ولی:
✅ ظاهر مدرن و حرفهایتر
✅ پشتیبانی از Dark Mode و Light Mode
✅ دکمهها و فریمهای زیباتر
✅ مناسب برای ساخت اپلیکیشنهای مدرن تر
pip install customtkinter
🖥نمونه کد:
import customtkinter as ctk
ctk.set_appearance_mode("dark")
ctk.set_default_color_theme("blue")
app = ctk.CTk()
app.geometry("400x300")
app.title("@local4host")
def button_click():
label.configure(text="دکمه کلیک شد ")
label = ctk.CTkLabel(app, text="سلام! از طرف @local4host ")
label.pack(pady=20)
button = ctk.CTkButton(app, text="کلیک کن", command=button_click)
button.pack(pady=10)
app.mainloop()
✅ ظاهرش مدرن و تمیزه
✅ از Dark Mode هم پشتیبانی میکنه
🌐 برای یادگیری بیشتر:
Customtkinter
#python #tkinter #customtkinter
@local4host
Tomschimansky
Official Documentation And Tutorial | CustomTkinter
CustomTkinter is a python desktop UI-library based on Tkinter, which provides modern looking and fully customizable widgets.
❤1
چگونه از یوتیوب بدون دردسر دانلود کنیم؟👌
اول از همه کتابخانهی yt-dlp استفاده میکنیم.
روش نصب:
و اگه نصب دارید چون yt-dlp هی آپدیت میشه ممکنه به ارور بخورید پس:
کد:
توضیح کد:
کتابخانه رو وارد میکنیم تا بتونیم ازش استفاده کنیم.
لینک ویدیو رو از کاربر میگیریم.
اینجا تنظیمات دانلود رو مشخص کردیم.
گفتیم فایل با اسم خود ویدیو ذخیره بشه و بهترین کیفیت موجود دانلود بشه.
اینجا دانلودر اجرا میشه و لینک رو دانلود میکنه.
فقط صدا دانلود کنیم چطور؟
اگه فقط موزیک ویدیو رو میخوای و تصویر لازم نداری، تنظیمات رو اینطوری کن:
تبریک🎉 الان خیلی راحت بدون دردسر از یوتیوب ویدیو دانلود کردی لایک یادتون نره
#python #youtube #ytdlp
Channel • @local4host
وقتی بخواهید از یوتیوب ویدیو دانلود کنید باید داخل وبسایتی برید که دانلود کنید یا برنامه چیزی نصب کنید که خیلی هم تبلیغ دارند و ایناچجوری؟ اینجوری😉:
ولی اگه پایتون داشته باشی، خیلی راحت و تمیز میتونی خودت دانلود کنی.
اول از همه کتابخانهی yt-dlp استفاده میکنیم.
روش نصب:
pip install yt-dlp
و اگه نصب دارید چون yt-dlp هی آپدیت میشه ممکنه به ارور بخورید پس:
pip install --upgrade yt-dlp
کد:
import yt_dlp
url = input("لینک ویدیو یوتیوب را وارد کن: ")
ydl_opts = {
'outtmpl': '%(title)s.%(ext)s',
'format': 'best',
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
توضیح کد:
import yt_dlp
کتابخانه رو وارد میکنیم تا بتونیم ازش استفاده کنیم.
url = input(...)
لینک ویدیو رو از کاربر میگیریم.
ydl_opts
اینجا تنظیمات دانلود رو مشخص کردیم.
گفتیم فایل با اسم خود ویدیو ذخیره بشه و بهترین کیفیت موجود دانلود بشه.
with yt_dlp.YoutubeDL(...)
اینجا دانلودر اجرا میشه و لینک رو دانلود میکنه.
فقط صدا دانلود کنیم چطور؟
اگه فقط موزیک ویدیو رو میخوای و تصویر لازم نداری، تنظیمات رو اینطوری کن:
ydl_opts = {
'format': 'bestaudio/best',
'outtmpl': '%(title)s.%(ext)s',
}تبریک🎉 الان خیلی راحت بدون دردسر از یوتیوب ویدیو دانلود کردی لایک یادتون نره
#python #youtube #ytdlp
Channel • @local4host
❤6
👀 ahmia.fi
🔹یه موتور جستجو مخصوص منابع شبکه Tor (.onion) 🔍
این سرویس سایتهای مخفی (Hidden Services) رو ایندکس و فیلتر میکنه و کمک میکنه راحتتر توی دارکوب سایت پیدا کنی 🕶️🌐
🔹تمرکزش روی حفظ حریم خصوصی کاربره و سعی میکنه محتوای کاملاً غیرقانونی رو حذف یا فیلتر کنه
🔹میتونی هم از طریق وب معمولی استفاده کنی، هم با مرورگر Tor تا امنتر داخل دارکوب بچرخی
Channel • @local4host
🔹یه موتور جستجو مخصوص منابع شبکه Tor (.onion) 🔍
این سرویس سایتهای مخفی (Hidden Services) رو ایندکس و فیلتر میکنه و کمک میکنه راحتتر توی دارکوب سایت پیدا کنی 🕶️🌐
🔹تمرکزش روی حفظ حریم خصوصی کاربره و سعی میکنه محتوای کاملاً غیرقانونی رو حذف یا فیلتر کنه
🔹میتونی هم از طریق وب معمولی استفاده کنی، هم با مرورگر Tor تا امنتر داخل دارکوب بچرخی
Channel • @local4host
🐍 اگه برنامه نویس پایتون هستین و نمیتونید پکیج هاش رو بخاطر قطعی نت نصب کنید، یک راه حل خوب هست :
🪄 مثلا اگر میخواین پکیج Requests رو نصب کنید, به جای دستور زیر :
🦦 کافیه از دستور زیر استفاده کنید :
اینطوری به mirror های داخلی (که سرورشون درون ایران هست) وصل میشین و راحت هر پکیجی رو خواستین میتونید نصب کنید 🌱
📯 اگر هم نمیخواهید هر دفعه i- رو بزنید میتونید با اجرای دستورات زیر در ترمینال، این mirror رو به عنوان میرور پیشفرض تعریف کنید :
🪄 مثلا اگر میخواین پکیج Requests رو نصب کنید, به جای دستور زیر :
pip install requests
🦦 کافیه از دستور زیر استفاده کنید :
pip install requests -i https://mirror-pypi.runflare.com/simple
اینطوری به mirror های داخلی (که سرورشون درون ایران هست) وصل میشین و راحت هر پکیجی رو خواستین میتونید نصب کنید 🌱
📯 اگر هم نمیخواهید هر دفعه i- رو بزنید میتونید با اجرای دستورات زیر در ترمینال، این mirror رو به عنوان میرور پیشفرض تعریف کنید :
pip config --user set global.index https://mirror-pypi.runflare.com/simple
pip config --user set global.index-url https://mirror-pypi.runflare.com/simple
pip config --user set global.trusted-host mirror-pypi.runflare.com
Channel • @local4host
این وبسایتها در دسترسن فعلا استفاده کنید تا قطع نکردند😅:
vercel.com
nextjs.org
letsencrypt.org
Channel • @local4host
🔹یه روش که شاید بدردتون بخوره به درد من که خورد اگر اندروید دارید و مثلا کانفیگ خریدید یه گیگ و بعد نمیخواهید همه اپلیکشن ها استفاده کنند بهتره دسترسی به انترنت اون اپلیکشن رو قطع کنید کلا
🔹روشش هم اینه انگشت تون رو روی اپلیکشن مد نظر بگیرید بعد app info رو بزنید وقتی باز کرد data usage رو باز کنید از اون SIM که فعلا انترنت مصرف میکنید رو غیر فعال کنید
مثلا از من google play فعلا قطعه چون هم آپدیت میکنه هم استفاده میکنه اگه باز هم نکنم
🔹روشش هم اینه انگشت تون رو روی اپلیکشن مد نظر بگیرید بعد app info رو بزنید وقتی باز کرد data usage رو باز کنید از اون SIM که فعلا انترنت مصرف میکنید رو غیر فعال کنید
اگه بدرد تون خورد اشتراک گذاری کنید❤️
Channel • @local4host
❤1
🔹لیست میرورهای داخلی ایران توی این شرایط به کارتون میاد
🐧 میرورهای لینوکس
📦 رجیستریهای داکر
🌐 میرور npm و pypi و داکر و ابزارهای مرسوم دیگه
📱 ریپو maven برای اندروید
👾 ریپو وزارت ارتباطات توش همه چی هست
🐧 میرورهای لینوکس
- mirror.arvancloud.ir
- mirror.iranserver.com
- mirror.mobinhost.com
- repo.iut.ac.ir
- mirror.shatel.ir
📦 رجیستریهای داکر
- arvancloud.ir/fa/dev/docker
- docker.mobinhost.com
- mirrors.pardisco.co/posts/docker
- focker.ir
- docker.kernel.ir
🌐 میرور npm و pypi و داکر و ابزارهای مرسوم دیگه
- runflare.com/mirrors
- lib.arvancloud.ir
- mirrors.pardisco.co
- mirror.iranserver.com
- mirrors.hyperclouds.ir
- iran.chabokan.net/#services
- index.rust-meetup.ir
📱 ریپو maven برای اندروید
- maven.myket.ir
- jamko.ir
👾 ریپو وزارت ارتباطات توش همه چی هست
- repo-portal.ito.gov.ir
Channel • @local4host
ثبت درخواست برای 6 ماه رایگان Claude Max🔥:
شرایط:
باید گیت هاب فعالی داشته باشید و بالای 5K استارز ‼️
اگه دارید که ثبت نام کنید ( ما که نداریم😂)
شرایط:
باید گیت هاب فعالی داشته باشید و بالای 5K استارز ‼️
اگه دارید که ثبت نام کنید ( ما که نداریم😂)
https://claude.com/contact-sales/claude-for-oss
Channel • @local4host
Claude
Claude for Open Source | Claude by Anthropic
Apply to the Claude for Open Source program. Eligible OSS maintainers and contributors get Claude Max for 6 months on us.