Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Gopher Academy
نکات ضروری درباره Assembler در Go

1. دستوری Semi-Abstract و مبتنی بر Plan 9

* اسمبلی Go برخلاف زبان‌هایی مثل C یا x86، کاملاً به‌صورت مستقیم به دستورات ماشین نگاشته نمی‌شود. بلکه از یک سطح انتزاعی استفاده می‌کند که از محیط کامپایلر gc سرچشمه می‌گیرد و مبتنی بر Plan 9 است
* بنابراین، زمانی‌که دستوری مثل MOV می‌بینی، ممکن است واقعا معادل آن نباشد و به مفاهیمی مانند load یا clear نگاشته شده باشد.

2. مشاهده اسمبلی تولیدی

* برای دیدن خروجی اسمبلی تابعی مثل `main`، می‌تونید از دستور زیر استفاده کنید:


  go build -gcflags -S x.go


یا:


  go tool compile -S x.go


این دستورها نسخه‌ی semi-abstract اسمبلی تولیدشده را نشان می‌دهند؛ و پس از لینک، دستوراتی استاندارد در Object یا Binary قابل مشاهده خواهند بود

3. تفاوت در ارزیابی Expressions

* در اسمبلی Go از precedence اپراتورها مشابه Go استفاده می‌شود؛ نه مشابه زبان C.
* برای مثال: 3&1<<2 برابر با (3&1)<<2 است و نتیجه آن 4 خواهد بود؛ نه 0

4. سمبل‌ها و نماهای خاص

* در اسمبلی Go برای اشاره به توابع یا متغیرها از سینتکس خاصی استفاده می‌شود، مثلا ·FuncName(SB) (Dot + نام تابع)
* همچنین سورس اسمبلی اگر دارای فایلی با پسوند .s باشد، ابزار go build فایل go_asm.h تولید می‌کند تا offsets ساختارها، مقادیر constant و ... در اسمبلی قابل استفاده باشند

5. دستورات کلیدی و پرچم‌ها

* دستور PCALIGN $n برای ترازسازی (alignment) دستورات به فواصل مشخص کاربرد دارد؛ مخصوصا در حلقه‌های بحرانی یا توابع حیاتی
* دستور go tool asm (یا cmd/asm) با پرچم‌هایی مثل -S, -debug, -D, -o, -shared, و ... استفاده می‌شود برای کنترل خروجی، پیش‌پردازش (#include, #define) و رفتار assembler .
Forwarded from Gopher Academy
چند نکته عملی و مفید از ریپوی Go Practical Tips توسط func25 جمع‌آوری کردم — این نکات به صورت کوتاه و کاربردی برای بهبود کیفیت و نگهداری کدهای Go ارائه شده‌اند. این توصیه‌ها از تجربه واقعی توسعه‌دهنده‌ها و نکات به‌اشتراک‌گذاشته‌شده در توییتر استخراج شده‌اند.
https://github.com/func25/go-practical-tips/blob/main/tips.md
Forwarded from Linuxor ?
گزینه DevTools مرورگر ها برای توسعه فرانت کار راه بندازه ولی فرانت کارا از این مرورگر اختصاصی استفاده می‌کنن برای اینکه همه تغییرات رو توی دستگاه های مختلف در لحظه رصد کنن

responsively.app

@Linuxor
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
این داستان Pypy 🐉

‏PyPy ابزاری قدرتمند برای برنامه‌نویس‌های پایتونه که به دنبال بهبود پرفورمنس کدهای خودشون هستن. اگه با کندی اجرای کد تو پروژه‌هاتون مواجه شدین یا می‌خواین بدونین چطور می‌شه سرعت پایتون رو بدون تغییر زیاد تو کد بالا برد، این پست برای شماست. اینجا قراره بررسی کنیم PyPy چیه، چه قابلیت‌هایی داره، کجا به کار میاد و چه محدودیت‌هایی داره.

🧠اول از همه PyPy چیه؟
PyPy یه مفسر (interpreter) جایگزین برای پایتونه که به جای CPython (مفسر استاندارد پایتون که با C نوشته شده) استفاده می‌شه. PyPy خودش با پایتون (به طور دقیق‌تر، یه زیرمجموعه به اسم RPython) پیاده‌سازی شده و از Just-In-Time Compilation (JIT) برای کامپایل کردن کد پایتون به کد ماشین تو زمان اجرا استفاده می‌کنه. این باعث می‌شه تو خیلی از سناریوها سرعتش به مراتب از CPython بیشتر باشه.

شروع این پروژه به سال ۲۰۰۲ برمی‌گرده و حالا یه پروژه متن‌باز با جامعه‌ای فعاله که مدام در حال بهبودشه. هدف PyPy اینه که کدهای پایتون رو سریع‌تر، بهینه‌تر و بدون نیاز به تغییر زیاد تو ساختار کد اجرا کنه.


📚 قابلیت‌های مهم PyPy

‏PyPy چندتا ویژگی اصلی داره که اون رو از CPython متمایز می‌کنه:

1⃣ سرعت بالا با JIT Compilation
‏PyPy به جای تفسیر خط‌به‌خط کد (مثل CPython)، بخش‌های پرتکرار کد رو به کد ماشین کامپایل می‌کنه. این یعنی برای حلقه‌ها و عملیات تکراری، سرعتش خیلی بیشتره.
مثال: یه تابع ساده برای محاسبه فیبوناچی:

  def fib(n):
if n <= 1:
return n
return fib(n-1) + fib(n-2)
print(fib(35))

تو CPython این کد برای n=35 ممکنه چند ثانیه طول بکشه، ولی تو PyPy به لطف JIT خیلی سریع‌تره (گاهی تا ۷ برابر).

2⃣ سازگاری بالا با پایتون
‏PyPy سعی می‌کنه تا حد زیادی با استانداردهای CPython سازگار باشه، یعنی اکثر کدهای پایتون بدون تغییر روی PyPy اجرا می‌شن.
مثلا اگه یه اسکریپت با Python 3.8 روی CPython کار کنه، به احتمال زیاد روی PyPy هم بدون دردسر اجرا می‌شه مگر از کتابخانه هایی استفاده کرده باشید که C extension استفاده میکنه.

3⃣ مصرف حافظه بهینه
‏PyPy یه Garbage Collector پیشرفته داره که می‌تونه مصرف حافظه رو تو بعضی سناریوها بهینه‌تر از CPython کنه.
کاربردشم تو برنامه‌هایی که مدت طولانی اجرا می‌شن (مثل وب‌سرورها) و نیاز به مدیریت خوب حافظه دارن.

4⃣پشتیبانی از Stackless Python
‏PyPy از قابلیت‌های Stackless Python (مثل micro-threads یا taskletها) پشتیبانی می‌کنه که برای برنامه‌های concurrent مناسبن.

🔍 چرا PyPy مناسبه؟
PyPy تو موقعیت‌هایی که پرفورمنس کد حیاتیه، می‌تونه بازی رو عوض کنه:

سرعت:
تو بنچمارک‌های مختلف، PyPy برای کدهای محاسباتی (مثل حلقه‌ها و الگوریتم‌های ریاضی) تا ۷ برابر سریع‌تر از CPython عمل کرده.

بدون نیاز به بازنویسی کد: برخلاف ابزارهایی مثل Cython که نیاز به تغییر کد دارن، PyPy فقط با تغییر مفسر کار می‌کنه.

متن‌باز و فعال:
جامعه PyPy مدام داره باگ‌ها رو فیکس می‌کنه و پشتیبانی از نسخه‌های جدید پایتون رو اضافه می‌کنه.


🛠 کجا PyPy به کار میاد؟

1⃣ محاسبات سنگین:
اگه پروژه‌تون پر از حلقه‌های پیچیده یا الگوریتم‌های محاسباتیه (مثل پردازش داده یا شبیه‌سازی)، PyPy سرعت رو حسابی بالا می‌بره.

2⃣ وب‌سرورها:
برای وب‌اپلیکیشن‌هایی که با فریم‌ورک‌هایی مثل Flask یا Django کار می‌کنن، PyPy می‌تونه پاسخ‌گویی رو بهتر کنه.

3⃣ اسکریپت‌های طولانی‌مدت: برنامه‌هایی که مدت زیادی اجرا می‌شن (مثل دیمن‌ها یا سرویس‌ها) از بهینه‌سازی حافظه PyPy سود می‌برن.

📚 محدودیت‌های PyPy

هرچند PyPy عالیه، ولی محدودیت‌هایی هم داره:

1⃣ عدم پشتیبانی کامل از C Extensions:
خیلی از کتابخونه‌های پایتون (مثل NumPy، Pandas یا TensorFlow) از C Extensionها استفاده می‌کنن که تو PyPy ممکنه کندتر باشن یا کار نکنن. البته PyPy داره روی این موضوع کار می‌کنه.

2⃣ سربار اولیه JIT:
‏PyPy تو شروع اجرا یه کم کندتره چون باید کد رو کامپایل کنه. برای اسکریپت‌های کوتاه این می‌تونه نقطه‌ضعف باشه.

3⃣ مصرف حافظه اولیه:
‏ PyPy گاهی تو شروع کار حافظه بیشتری نسبت به CPython مصرف می‌کنه.

جمع‌بندی

PyPy یه ابزار قدرتمنده که می‌تونه کدهای پایتون شما رو بدون نیاز به بازنویسی، سریع‌تر و بهینه‌تر اجرا کنه. با استفاده از JIT Compilation، این مفسر برای پروژه‌های محاسباتی، وب‌اپلیکیشن‌ها و اسکریپت‌های طولانی‌مدت یه انتخاب عالیه. هرچند محدودیت‌هایی مثل سازگاری با C Extensionها داره، ولی برای خیلی از سناریوها می‌تونه پرفورمنس رو چند برابر کنه.

#️⃣ #web #programming

 
🥷🏻 CHANNEL | GROUP
این روزها شلوغ می‌گذره؛ بسیار شلوغ!

و چون غیر از ۱ پروژه که روتین شده؛ خیلی به کد زدن Rust نمی‌رسم دنبال یک کتابی بودم که مثل Référence و آموزش سریع باشه.

این کتاب رو برای کسایی که می‌خوان تازه Rust رو شروع کنند پیشنهاد نمی‌کنم، اما اگر دنبال یک Cookbook هستید که خیلی سریع مفاهیم مختلف رو دوباره مرور کنید.
کتاب خوبی هست.

Ultimate Rust for Systems Programming
Forwarded from Mine
This media is not supported in your browser
VIEW IN TELEGRAM
این رو یکی از دوستان برام فرستاده!
با کلی سختی، دیدمش (اکانت ندارم، جز تلگرام)

ولی کاملاً ارزشش رو داشت؛ روزمو ساخت.
کسی ویدئو کامل رو داره ؟
یا نفر دوم رو می‌شناسه ؟ (با این صدا باید Influencer باشه)

پ.ن :

دوستان همه حرفه‌ای، کانال یوتیوب رو برام فرستادند.
Youtube
Je n'ai pas changé
Julio Iglesias
je n'ai pas changé
Artist: Julio Iglesias
Album : Sono Un Pirata, Sono Un Signore
Released: 1978
Produce: 1978
Genres: Pop

@PytensMusic
je n'ai pas changé
Julio Iglesias
تو زندگی آدم‌هایی هستند
که وقتی یادشون می‌کنی هم دلت می‌لرزه
هم قلبت تند میزنه هم خاطرات خوبی برات زنده می‌شه

برای این آدما از جان هم ممکنه بگذری
اما هیچوقت نمی‌خوای کنارشون باشی ...

این برای یکی از همون آدم‌های زندگی من
Forwarded from Mine
این ترجمه هم خواهد ماند
عزیزانی که با نرم‌افزارآزاد ایرانی مشکل دارن می‌تونن کارشون رو با حذف کردن حرف‌باز از روی سیستمشون شروع کنن:

https://github.com/harfbuzz/harfbuzz

چون یک ایرانی نوشتش و به نرم‌افزارهای ایرانی اعتمادی ندارن.


#تلنگر
@SohrabContents
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔹 بررسی وضعیت رمز عبور با passwd -S

گزینه -S در دستور passwd برای نمایش خلاصه وضعیت رمز عبور یک حساب کاربری استفاده می‌شود.
این اطلاعات شامل فعال یا غیرفعال بودن رمز، تاریخ آخرین تغییر، و تنظیمات مربوط به طول عمر رمز عبور است.

📌 مثال:

sudo passwd -S hossein

خروجی نمونه:

hossein PS 2018-10-01 0 99999 7 -1 (Password set, SHA512 crypt.)


🔍 توضیح فیلدها به ترتیب:

1. نام کاربرhossein
2. وضعیت رمز عبور (P / NP / L): اگر هر کدام از این سه تا بود:

* P → رمز عبور فعال و قابل استفاده (Password set)
* NP → حساب بدون رمز عبور (No Password)
* L → حساب قفل شده (Locked)
3. تاریخ آخرین تغییر رمز عبور2018-10-01
4. مقدار Minimum → کمترین تعداد روز لازم قبل از اینکه کاربر بتواند دوباره رمز خود را تغییر دهد (0 یعنی بدون محدودیت)
5.مقدار Maximum → بیشترین تعداد روزی که رمز عبور معتبر است (99999 یعنی تقریباً بدون انقضا)
6.مقدار Warning → تعداد روزهایی که قبل از انقضای رمز عبور، به کاربر هشدار داده می‌شود (7 روز)
7.مقدار Inactive → تعداد روزهای غیر فعال بودن حساب بعد از انقضای رمز عبور (-1 یعنی غیرفعال نشده)
8. توضیح داخل پرانتز → وضعیت رمز و الگوریتم هش (مثلاً: SHA512 crypt)

✏️ نویسنده: حسین سیلانی
💬 لطفاً آموزش‌ها را برای بازخورد بیشتر در گروه‌هایی که عضو هستید منتشر کنید.
📢 اخبار و آموزش‌های بیشتر در کانال:
🔗 [https://t.iss.one/linuxtnt](https://t.iss.one/linuxtnt)
Forwarded from Linuxor ?
جی‌کوئری خودش یکی از ساده ترین کتابخونه های جاوااسکریپته ولی یه عده با همین سادگیش هم مخالف لایبری اضافه ان و می‌گن کد native جاوا اسکریپت بهتره، ماها خیلی به سینتکس جی‌کوئری عادت کردیم و ترکش سخته اینجا یه لیست از جایگزین های native خود جاوا اسکریپت برای جی‌کوئری نوشته شده زیاد جنبه کاربردی نداره ولی بهتون این درکو میده پشت کد جی‌کوئری که نوشتین چیه دقیقا !


github.com/camsong/You-Dont-Need-jQuery

@Linuxor
Forwarded from SoniaCircuit
🔗 سابسکریپشن بر اساس پروتکل سرورهای نامیرا نت

⚡️ پروتکل VMESS

🚀 پروتکل VLESS

🛡 پروتکل Trojan

🔒 پروتکل Shadowsocks

🌐 پروتکل Hysteria/Hy2 ( به زودی )


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

❤️ حمایت مالی

⚙️ کانال کانفیگ : @NamiraConfigs

🔗 کانال اصلی نامیرانت : @NamiraNet ( در حال بررسی رفع ریپورت )

🔗 کانال ادمین : @SoniaNotes

#subscription #namira #xray #v2ray #protocol
Please open Telegram to view this post
VIEW IN TELEGRAM
پلاگین ارسال بکاپ دیتابیس وردپرس به تلگرام

قابلیت رمز گذاری بر روی فایل های زیپ
اسال به صورت خودکار ( ساعتی / روزانه / هفتگی / ماهانه )
ارسال به صورت دستی
ارسال پارت های 45 مگابایتی برای دیتابیس های بزرگ


نکته : این پلاگین فعلا در سرور های خارج کار میکنه و برای حجم های بزرگ دیتابیس مناسب نیست برای دیتابیس هایی که حجم دیتابیسشون زیر 4 گیگ هست مناسبه

در نسخه های بعدی پشتیبانی از هاست های ایرانی رو نیز اضافه خواهیم کرد

دقت کنید بات تلگرام قابلیت ارسال بالاتر از 50 مگ رو نداره


@poinair پوینا
Forwarded from Agora (Alireza)
‌هم‌زیستی با هوش مصنوعی
ـــــــــــــــــــــــ

فکر می‌کنم الان یک سالی هست که از این agentهای معروف روی IDEهام استفاده می‌کنم و حالا برام مسجّل شده که کجا باید از چی استفاده کنم و کجا باید دکمه‌ی کدومشون رو بزنم و امروز که صحبت از ج پ ت شد، گفتم راجع‌به این موضوع هم بگم که خیلی وقته ذهنم رو مشغول کرده.

من همیشه GitHub Copilot داشتم. دو ماهی هم هست که به توصیه‌ی زوری شرکت دارم از Cascade استفاده می‌کنم. البته برای هیچ‌کدومشون، خداروشکر، پولی از جیب نمی‌دم. اولی رو از GitHub Student دارم، دومی رو هم که خود شرکت خرجی که تراشیده رو پولش رو می‌ده. کدهایی هم که این روزها می‌نویسم به ترتیب Go، و بعد با اختلاف Rust و در نهایت Pythonه. سال‌ها پایتون زبان اول بود و تسلطم بهش نسبت به اون دوتای دیگه با اختلاف بیشتره و با دوتای دیگه به‌خصوص Rust مشغول خاک‌بازی‌ام.

نکته‌ای که وجود داره اینه که وقتی Cascade رو نصب می‌کنی، به‌صورت پیش‌فرض فضولی بی‌جا می‌کنه و انگشتش رو با ذوق توی هر سوراخی فرو می‌بره. یک‌جایی از کد اگر اروری داشته باشه، اولین گزینه‌ای که به‌جای پیشنهاد IDE میاد (مثل import کردن)، اینه که می‌گه می‌خوای با کسکید فیکس کنی؟ نه پسر خوب! نمی‌خوام!! استفاده ازش بلاهت محضه. ایمپورتی که خود IDE خیلی راحت و سریع می‌تونه از پسش بربیاد و راه‌حل قطعی هم داره رو پاس می‌ده به ایجنت که بره و از آقاشون بپرسه و جواب رو بگیره و زحمت بکشه اون بالا ایمپورت رو اضافه کنه. البته این مورد اول خیلی ساده حل می‌شه. خرجش چهار تا کلیک برای حذف suggestionهای این‌طوریه. غر خاصی نیست. مشکل ولی توی پروسه‌ی یادگیریه…

وقتی که شروع کرده بودم Go نوشتن، autocompleteهای مبسوط و اغواگر کوپایلت هم فعال بود. اسم متد رو می‌نوشتی، بدنه پیاده می‌شد. یا تمام کارهای جذابی که خودتون هم دیدین و تجربه کردین (و البته با تمام مشکلاتی که داشت) و این خود مشکل بود. وسوسه‌ی خناسی که روزبه‌روز بیشتر بهت چیره می‌شه و تو نمی‌تونی ازش دل بکنی. این رو وقتی احساس می‌کردم که می‌خواستم بدون از رو دست کسی نوشتن، صفر تا صد یک راه‌حل رو پیاده‌سازی کنم. چیزی که گرفتارش شده بودم «توهم یادگیری» بود. اگر AI نبود یا وقتی می‌خواستم کد رو توی ذهن خودم پیاده کنم، جزئیات پیاده‌سازی، مثل متدها، سینتکس و پکیج‌ها و از همه مهم‌تر، اون نکته‌های اساسی زبان یادم نبود و این فراموشی واسم ترسناک بود.

این رو احتمالاً هممون قبل از سال ۲۰۲۲ تجربه کردیم. فراموشی از جنس وقت‌هایی که تکه‌کدهایی رو از استک‌اورفلو کپی می‌کردیم و توی پروژه‌ها و تمرین‌ها استفاده می‌کردیم و وقتی که دوباره بهشون نیاز پیدا می‌کردیم، باید دوباره می‌رفتیم و همون رو کپی می‌کردیم. کدهایی که خیلی طول می‌کشید تا درست یادشون بگیریم چون احتمالاً خیلی بهشون توجهی نمی‌کردیم (و نیازی هم نبود که توجه کنیم چون داشت خیلی خوب کار می‌کرد) و همین باعث می‌شد تا خیلی بیشتر طول بکشه تا به ذهن بسپریم.

ماجرای امروز هم همون قصه‌ی دیروزه ولی با یک فرق مهم: این به‌خاطر نسپردن‌ها هم بیشتر شده‌ن و هم ابتدایی‌تر. موارد پایه‌ای‌تری رو ما حالا نیازی نیست به‌خاطر بسپریم و بهشون توجه کنیم. چون همه‌ش داره کار می‌کنه. و من این‌طور فکر نمی‌کنم که واقعاً نیاز نباشه. الان جای اینه که باز بحث این پیش میاد که با این وضعیت و وجود این LLMها چه نیازی به اینه که اصلاً چیزی رو حفظ کنیم. باز هم تجربه و نظر شخصی من اینه که بدون حفظ کردن اصلاً یادگیری کامل نمی‌شه و از همه مهم‌تر اینه که وقتی بری مصاحبه و ازت بخوان که کد بنویسی و تو اون زبون رو از روز صفر با این ایجنت‌ها پیش برده باشی، چطوری می‌خوای این بی‌آبرویی فراموشی رو تحمل کنی؟! به قول ما مازندرانی‌ها «این رِسوایی رِ خی نَخِرنه!»

از ترس همین هم بود که تمام inline suggestionها رو بستم. عملاً توی قسمت ادیتور دیگه خبری از این AIها نیست. هرچی هست چت‌باکسه و بس. خیلی کم‌تر از ایجنت‌ها استفاده می‌کنم مگر این‌که واقعاً کاری باشه که قبلاً بارها و بارها انجام داده باشم و بدونم اگر بخوام بنویسم صادقانه از پسش برمیام. یا اگر بخوام که توی یک کدبیس بزرگ بی‌در و پیکر دنبال چیزی بگردم. حالا وقتی داشتم کارهای قدیمی رو می‌کردم دیدم که بالاخره دارم می‌فهمم چه اتفاقی واقعا می‌افته. اگر اون خط رو می‌نویسم برای مدیریت goroutineها، چرا باید استفاده بشه و چرا استفاده می‌کنم. حالا این بهونه رو دارم که برم همون‌جا داکیومنتش رو بخونم.

واقعیت اینه که من ترجیح می‌دم که به‌جای این‌که یک چوب جادویی داشته باشم که واسم کارم رو انجام بده، یک خر سخنگو داشته باشم که وقتی کارم گیر کرد راهنماییم کنه.

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


tldraw.com

@Linuxor