Md Daily – Telegram
Md Daily
725 subscribers
239 photos
15 videos
21 files
283 links
راجب مقالات و مستندات فنی یا غیر فنی که میخونم و علایقم اینجا مینویسم :)


گروه کانال: https://news.1rj.ru/str/MdDailyGap

کورس ها: https://news.1rj.ru/str/MdDaily/395

وبلاگ: https://mddaily.ir
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
ادرنالین رو از دست ندین 👨🏻‍💻
یک شبکه عصبی جالب برای برنامه نویسا که نادرستی کد رو به دقت شناسایی می کنه و گزینه هایی برای اصلاح آنها ارائه می‌ده.
useadrenaline.com

<Hounaar>

🆔 @MdDaily
🔥2👨‍💻1
‏در مورد این هک هایی که اتفاق میفته و دیتا شرکت‌های بزرگ را میبرند، الزاما همیشه از طریق آسیب‌پذیری نیست، لذا به نکات زیر توجه فرمایید 🤭
به هاستینگ اعتماد نکنید ( مخصوصا ایرانی )، اینها به فایلهای مشتری دسترسی دارند و اگر چیزه جذابی ببینند احتمال دارد برای خودشون کپی کنند.

یک) اگر یک کسب و کار بزرگی دارید که نیازمند سرور اختصاصی‌ست به هر نحوی که شده از شرکت‌های معتبر سرور بگیرید و به این هاست فروش‌های داخل زیاد اعتماد نکنید
اگر سایت / دیتا جالبی داشته باشید اینها ممکنه درایو سرور را clone میگیرند یا با KVM وصل میشوند و سورس/دیتا سایت شما را بدزدند.

دو) کد خودتون را محافظت کنید اگر مثلا php است با چیزهایی مثل sourceguardian و ... کدتون را encrypt کنید و حتما کد را روی دامنه قفل کنید که فقط روی دامنه شما و localhost اجرا بشود

سه) سیستم عامل را encrypt کنید که سرویس دهنده توانایی دسترسی به فایلها/دیتابیس شما را نداشته باشد

<Teegra>

🆔 @MdDaily
👀2👍1🤔1🤯1
اگه برای طراحی اپلیکیشن و محصولتون نیاز به ایده و یه منبع الهام دارید ‏این وب سایت  اومده تمام illustration های استفاده شده توی سایت‌ها و اپ‌های معروف رو دسته بندی شده و با اسکرین شات هاشون گذاشته

https://illustrationsuniverse.com/


🆔 @MdDaily
👌3🔥2🗿1
Forwarded from Seyed Mahdi Notes (Seyed Mahdi)
دیروز سوال شد ازم که آیا fast api سریع هست؟
خب در مرحله ی اول که اسمش روشه . اسمش فسته . اگه کند بود اسمشو میزاشتن slow api :)

به نظر من این قضیه و شمارش ریکوئست هایی که هر فریمورک میتونه در ثانیه ریسپانس بده (req/sec) کار باطلی هست

بر فرض ما یه app رو تازه نوشتیم(به هر زبونی و فریمورکی فرقی نمیکنه) توی قدم اول رانش میکنیم!!! نمیریم استرس و لود تست ازش بگیریم که همون اول :/
بعد چندین سال صبر میکنیم تا یوزرای همزمان سایت زیادتر بشن!

بعد ازدیاد جمعیت اولین bottleneck ای که بر میخوریم اینه که اپ کند شده... خب ورکر هاشو زیاد میکنیم. توی پایتون گونیکورن این قضیه رو هندل میکنه
بعد یه مدت وقتی شلوغ تر شدیم میبینیم دیتابیس زیر فشاره. خب قبل اینکه توی این استیت باشید باید کوئری هاتون رو تا جای ممکن بهینه میکردید.
توی این مرحله ۲ تا سولوشن دارید! (دقت کنید که هنوز مهم نیست اپ رو با چی نوشتید:))
- کش کردن: بخشی از دیتای دیتابیس رو کش کنید حالا یا با قابلیتای خود دیتابیس یا ردیس ای چیزی بزارید وسط
- کلاستر کردن دیتابیس: میتونید دیتابیس رو ۳ تا اینستنس ازش بیارید بالا و یا slave و master بزارید و تمام read ها رو بفرسید سمت اسلیو

خب تا اینجا احتمالا بالای ۵۰۰ تا یوزر همزمان دارید! ادامه بدم؟
خب قدم بعد مجدد app کم میاره اگه نمیتونید ترد ها و ورکر هاشو بیشتر از این بالا ببرید ؛ اینجاست که بحث فریمورک ها رو مطرح ...
نه خب سخت در اشتباهید بیام سر قضیه فریمورک و زبان بحث کنم
وقتی شما ۱۰۰۰ تا یوزر همزمان دارید یعنی پولتون از پارو بالا میره
برید ۳ تا سرور دیگه بخرید و بکندتون رو روی اونا هم ران کنید(همزمان ۳ جا) بعد از جایی که خریدید بگید یه نتورک داخلی بین این ۴ سرورتون بزاره .‌ روی سرور ۴ ام haproxy یا nginx بزنید که ترافیک ورودی رو پخش کنه بین این ۳ تا سرور ... ایزی


در راستای این پست ، یکی میگفت: اونایی که وسط حرفاشون کلمات انگلیسی استفاده میکنن خیلی کنسل هستن :))))
Seyed Mahdi Notes
دیروز سوال شد ازم که آیا fast api سریع هست؟ خب در مرحله ی اول که اسمش روشه . اسمش فسته . اگه کند بود اسمشو میزاشتن slow api :) به نظر من این قضیه و شمارش ریکوئست هایی که هر فریمورک میتونه در ثانیه ریسپانس بده (req/sec) کار باطلی هست بر فرض ما یه app رو…
در ادامه ی پست سید مهدی عزیز منم نظر و تجربه خودم رو میگم:

وقتی شما قراره یه پروژه ایو شروع کنید، اگه تمام مدت به این فکر کنید که قراره از چه ابزاری استفاده بشه و اگه از این ابزار یا تکنولوژی استفاده کنم نکنه در آینده به مشکل بخوره، کند بشه، منسوخ بشه، پشیمون بشم و کلی افکار که قراره شما را بمباران کنه، ممکنه هیچ وقت نتونید اون ایده را شروع یا محصول کنید یا بتونید به نتیجه برسونیدش


واقعا کاربر استفاده کننده براش مهم نیست شما اون پشت از چی استفاده کردید، پروژه را با fast api زدید یا django یا حتی node js . تنها چیزی که برا کاربر مهمه اینکه اون اپ یا سایت داره بدون مشکل کار میکنه

پس شما بجای اینکه به اون تکنولوژی و ابزاری که ازش دارید استفاده میکنید وابسته باشید، باید روی مهارت های خودتون ساختار پروژه تمرکز کنید.  اما  این دقیقا یعنی چی؟

اینکه شما کدوم ابزار رو استفاده کنید جزئیاته بیشتر از اینکه خودتون رو در گیر جزئیات کنید ببینید دقیقا میخواین چیکار کنید
جزئیات خودش مشخص میشه

برای انتخب زبانی که قراره پروژتون رو باهاش  ببرید جلو  نه به بنجمارک ها اعتماد کنید و نه از روی ترند انتخاب کنید
چیز های مختلف رو تست کنید و ببینید با کدوم راحت و مسلط هستید با همون پروژه رو ببرید جلو

اما چرا نباید به بنجمارک ها اعتماد کنیم؟
بنجمارک گرفتن اصلا کار آسونی نیست
محیطی که توی اون بنجمارک گرفتن با محیط اجرایی شما فرق میکنه
کدی که توی بنجمارکه با کد شما فرق میکنه
شرایطی که توش بنجمارک گرفتن با شرایط شما فرق میکنه و کلی پارامتر  دیگه هست که چرا نباید به بنجمارک ها اعتماد کنیم .
بنجمارک میتونه  در حالتی قابل اعتماد باشه  که مثلا بین دوتا فریم ورک شک دارید روی محیط اجرایی خودتون با شرایط یکسان از این دوتا بنجمارک میگیرد و به انتخابتون کمک میکنه

به نقل قول از دوستان:
بهترین زبان و تکنولوژی اونیکه شما ازش در آمد دارید :)

در نهایت خیلی خودتون رو قاطی دعوا های اون زبان از اون بهتره ها و اینا نکنید اینا همشون ابزارن، مهم مهارت و دانش خودتونه که مهمه تا ابزاری که دارید باهاش کار میکنید

🆔 @MdDaily
👍8
این ابزار اپن سورس DevToys هم خیلی جالبه . بهتون لیستی از ابزار هایی که برای استفاده ازشون مجبورید برید سراغ سایت های آنلاین یا از ابزار های شخص ثالث استفاده کنید رو به صورت اجرای افلاین میده .
لیست ابزار هاش:

Converters
JSON <> YAML
Timestamp
Number Base
Cron Parser
Encoders / Decoders
HTML
URL
Base64 Text & Image
GZip
JWT Decoder
Formatters
JSON
SQL
XML
Generators
Hash (MD5, SHA1, SHA256, SHA512)
UUID 1 and 4
Lorem Ipsum
Checksum
Text
Escape / Unescape
Inspector & Case Converter
Regex Tester
Text Comparer
XML Validator
Markdown Preview
Graphic
Color Blindness Simulator
Color Picker & Contrast
PNG / JPEG Compressor
Image Converter

نسخه ی ویندوز را از devtoys.app و نسخه ی مک را هم از ریپوی گیت هاب DevtoysMac میتونید دانلود کنید. و فعلا مشابهی براش تو لینوکس نیست :)

🆔 @MdDaily
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
در ادامه ی پست قبلی توی این ویدیو یوتیوب آموزش نصب و استفاده از برخی ابزار های Devtoys رو آموزش داده که در فرایند توسعه به شما کمک میکنه

🆔 @MdDaily
👍2
بالاخره Mojo به صورت عمومی منتشر شد و می تونید با ثبت نام توی سایت https://www.modular.com/mojo با دانلود Mojo Sdk این زبان را تست کنید

پیش نیاز هاشم اینکه حتما آخرین نسخه python و کامپایلر clang++ یا g++ رو داشته باشید.

روی ویندوز یا مک ازش نمیتونید به صورت مستقیم استفاده کنید چون فقط روی توزیع های لینوکسی کار میکنه و توزیع پیشنهادی سایت mojo نسخه ی پایدار یا آخرین نسخه ی منتشر شده ی اوبونتو هستش
پس در نتیجه برای نصبش رو ویندوز باید از WSL استفاده کنید

توی پست های بعدی باهم این زبان رو نصب و تست میکنیم ؛)

🆔 @MdDaily
خب بعد از تکمیل فرایند ثبت نام در سایت Mojo برای شما صفحه ی دانلود را میاره که بهتون آموزش میده توی ویندوز یا مک یا لینوکس چطوری میتونید sdk را نصب کنید . به نظر میرسه که فعلا فقط برای توزیع ابونتو در دسترس هستش و برای نصب و تست توی بقیه ی توزیع های لینوکسی مثل آرچ یا فدورا میتونید از داکر ایمیج اوبنتو یا پروژه ی distrobox استفاده کنید.

پ ن :
توزیع خودمم آرچ هستش و من از distrobox استفاده میکنم. به طور خلاصه distrobox پروژه ایه که به شما اجازه میده از بقیه ی توزیع های لینوکسی توی ترمینالتون استفاده کنید.

🆔 @MdDaily
خب یک فایل جدید بنام hello.mojo ایجاد کردم و با کامند :
mojo hello.mojo

برنامه را اجرا کردم که خروجیه :
hello world

رو نمایش داد :)

یکی از تفاوت های سینتکس mojo با پایتون که توی کد هم مشخصه تابع شروع کننده برنامس بجای کد پایتون :
if __name__ = = "__main__": 

توی mojo از :
def main(): 

استفاده میشه

🆔 @MdDaily
👍1
خب بریم سراغ تست سرعت اجرای پایتون و mojo در برنامه ی fibonacci .

اینجا ما کد پایتون و mojo رو داریم که یک برنامه ی fibonacci را با فرمول:

Fn = Fn-1 + Fn-2
اجرا می کنند

موقع نوشتن کدش توی mojo متوجه شدم هنوز این زبان خیلی ناقصه و بر خلاف تبلیغاتی که براش انجام شده هنوز نمیشه توی محیط واقعی ازش استفاده کرد. مثلا موقع استفاده از print توی mojo شما نمیتونید از keyword ها مثل پایتون استفاده کنید و با خطای:

keyword arguments are not supported yet

مواجه میشید.

اما بریم سراغ سرعت اجرا:
Python:
python fib.py 0.02s user 0.01s system 97% cpu 0.031 total

Mojo:
mojo fib.mojo 0.09s user 0.03s system 114% cpu 0.102 total

و بله پایتون اینجا داره بهتر عمل میکنه :)

🆔 @MdDaily
👍1🔥1🍾1
Md Daily
خب بریم سراغ تست سرعت اجرای پایتون و mojo در برنامه ی fibonacci . اینجا ما کد پایتون و mojo رو داریم که یک برنامه ی fibonacci را با فرمول: Fn = Fn-1 + Fn-2 اجرا می کنند موقع نوشتن کدش توی mojo متوجه شدم هنوز این زبان خیلی ناقصه و بر خلاف تبلیغاتی که…
💡 نتیجه

بعد از اینکه با دستور :
mojo build fib.mojo
برنامه را بیلد کردم و مجدد تست گرفتم سرعت اجرایی به طرز چشمگیری افزایش پیدا کرد :
Mojo executable :
./fib 0.00s user 0.00s system 84% cpu 0.003 total

اما چیزی که تا اینجای کار مشخصه اینکه mojo صرفا سینتکسش شبیه پایتون هستش و اگر شما یک برنامه ای دارید که با پایتون نوشتید و قصد داشته باشید با mojo ازش خروجی بگیرید این کار بدون بازنویسی بخش های زیادی از پروژه ی شما فعلا غیر ممکنه و mojo خیلی با built in های پایتونی سازگار نیست و داره مسیر جدا گونه ایو دنبال میکنه.

- آیا mojo میتونه جای پایتون رو بگیره؟
جواب کوتاه: نه
خیلی پروژه های بزرگ هوش مصنوعی و آنالیز داده با پایتون نوشته شدن و اگه قرار باشه به mojo مهاجرت کنند، مجبورن خیلی بازنویسی کنند و هزینه و زمان زیادی را صرف کنند

- آیا mojo واقعا از پایتون سریع تره؟
جواب کوتاه: هم آره هم نه
در حالت عادی پایتون از mojo سریع تره ولی بعد از گرفتن خروجی در mojo سرعت برنامه ای که با mojo نوشته شده از پایتون بیشتر میشه

- آیا منی که پایتون بلدم یعنی mojo هم بلدم؟
جواب کوتاه: تقریبا نه
با مراجعه به مستندات mojo میتونید ببیند که چه قدر نوشتن برنامه در پایتون و mojo متفاوته و قواعد این زبان ها مثل هم نیستند . mojo روی کاغذ سینتکسش شبیه پایتونه ولی در عمل خیلی متفاوته .

- آیا mojo با اکوسیستم پایتون کاملا سازگاره؟
جواب کوتاه: بستگی داره
برای استفاده از پکیج های پایتونی تو mojo باید پکیج python را صدا بزنید که پکیج پایتون mojo برای شما چیزی که مد نظرتونه رو import کنه مثلا برای استفاده از numpy :
from python import Python

# This is equivalent to Python's `import numpy as np`
let np = Python.import_module("numpy")
و خب اینجا داره پایتون اجرا میشه و خروجی mojo هم دیگه سرعتی که انقدر داره دربارش تبلیغ میشه رو نداره.

- آيا mojo متن بازه؟
نه!

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

🆔 @MdDaily
👍4
🔸 خیلی از تصمیم‌های ما بر اساس ترس و شک هستن و ترس‌هامون اقدامات و کارهای ما رو تحت تأثیر قرار می‌دن. مثلاً ممکنه دلمون بخواد که حوزه کاریمون رو تغییر بدیم، ولی با خودمون فکر می‌کنیم نکنه دیر باشه یا نتونم موفق بشم؟

🔹و همین ترس و شک باعث می‌شه این کار رو انجام ندیم. در واقع ما به جای اینکه دلیلی برای انجام کار پیدا کنیم، دنبال دلیلی هستیم که اون کار رو انجام ندیم.

🔸اشتباه کردن یه اتفاق اجتناب‌ناپذیره، همینطور احساس ترس یا شک؛ اما آیا این موضوع به این معنیه که اگر جایی ترسیدیم یا شک داشتیم نباید ادامه بدیم؟ اصلاً این طور نیست. اما چطور می‌تونیم به این ترس غلبه کنیم؟ در ادامه ۵ راهکاری که بهمون توی این کار کمک می‌کنه رو توضیح دادیم.

<TechRasa>

🆔 @MdDaily
👍1
Md Daily
🔸 خیلی از تصمیم‌های ما بر اساس ترس و شک هستن و ترس‌هامون اقدامات و کارهای ما رو تحت تأثیر قرار می‌دن. مثلاً ممکنه دلمون بخواد که حوزه کاریمون رو تغییر بدیم، ولی با خودمون فکر می‌کنیم نکنه دیر باشه یا نتونم موفق بشم؟ ‏🔹و همین ترس و شک باعث می‌شه این کار رو…
۱)اهداف کم‌ریسک رو انتخاب نکنین
اهدافتون رو خارج از منطقه امنتون انتخاب کنین. اگه اهدافتان در چارچوب منطقه امنتون باشه، در این صورت شکست خیلی معنا نخواهد داشت.
شکست خوردن در منطقه امن در واقع راهی هوشمندانه برای عقب نگه داشتن خودتون و حفظ وضعیت موجوده. اگه هیچ‌وقت احساس ناراحتی نمی‌کنین، پس احتمالاً چیز جدیدی رو امتحان نکردین.

‏۲)کسی منتظر شما نیست!
ممکنه موفق بشین یا شکست بخورین؛ اما در بیشتر موارد هیچ‌کس به موفقیت یا شکست شما اهمیتی نمی‌ده. دنیا بسیار بزرگ و ما کوچک هستیم. این به این معنیه که می‌تونیم‌ رویاهامون رو با اندک نگرانی از اینکه دیگران چی فکر می‌کنن، دنبال کنیم.

‏۳) شروع کنین، حتی اگه نقطه شروعتون رو دوست ندارین!
احساس ترس و عدم اطمینان باعث می‌شه فکر کنیم که آماده نیستیم و به خودمون می‌گیم «قبل از شروع کسب‌وکارم باید این مدرک رو بگیرم» یا «باید قبل از مسابقه بیشتر تمرین کنم»
برای همین خیلی مهمه که حتماً شروع و سعی کنین در ادامه ایراد‌هاتون رو رفع کنین.

۴) اتفاق‌هایی رو که قطعی نیستن رو قطعی ندونین!
چه کسی گفته که قراره شکست بخورین؟ این که یه نفر یا یکی از دوستان ما در یک مسیری شکست خورده به این معنی نیست که شما هم شکست می‌‌خورین.
‏شما محکوم به شکست خوردن نیستین؛ در واقع شاید تقدیر شما در موفقیت باشه. جوری رفتار نکنین که انگار شکستتون قطعیه، چون نیست.

‏۵) تنها شکست واقعی، هیچ کاری انجام ندادن!
همه ما با احساس‌هایی مانند ترس، عدم اطمینان و آسیب‌پذیری سر‌و‌کار داریم. متأسفانه بسیاری از ما اجازه می‌دیم تا این احساسات روی اقدامات و فعالیت‌هامون تأثیر بذارن.

به همین دلیل لازم نیست که در کاری که انجام می‌دین عالی باشین، کافیه که تصمیم بگیرین و عمل کنین؛ همین کار شما رو متمایز می‌کنه. شما می‌تونین با انجام کار‌هایی که اکثر مردم برای انجام ندادن اون بهانه می‌یارن، به موفقیت‌های بسیاری برسین.

<TechRasa>


🆔 @MdDaily
👍1🔥1
از poe.com غافل نشید :)

با استفاده از این سایت میتونید به gpt4 ، PaLM, Claude و ... دسترسی پیدا کنید

و bot خودتون رو بسازید یا از بات هایی که توسط بقیه ساخته شدن استفاده کنید

🆔 @MdDaily
👍2
#فان

برای یاد گیری و درک مفهوم Recursive Function (تابع بازگشتی)
در برنامه نویسی کافیه روی این لینک کلیک کنید

🆔 @MdDaily
😁10🤪6👻2👍1🫡1
🔥امروز روز جهانی برنامه‌نویس هاست..

امیدوارم تست هاتون بدون دردسر پاس و کد هاتون همیشه بدون باگ باشن :)

با انرژی و امید ادامه بدید و قدر دانی میکنیم از تمام کسانی که با کارهاشون دنیا را به جای بهتری تبدیل کردند و میکنند

روزتون مبارک رفقا ❤️

🆔 @MdDaily
4👍2🎉1🍌1
‏حالا که بحث اپل داغه بذارید یه حقیقت رو درمورد iOS بهتون بگم:

توی آیفون و آی‌پد، مرورگری به جز سافاری وجود نداره
حتی کروم و فایرفاکس و edge هم اونجا در حقیقت سافاری هستن، فقط ادای یه مرورگر دیگه رو درمیارن!

قضیه از این قراره که اپل فقط اجازه میده یک انجین خاص به اسم WebKit روی iOS ران بشه. کار این browser engine خیلی خلاصه اینه که کد وبسایت رو بخونه و براساس اون، صفحات رو رندر کنه و به یوزر نشون بده

بخاطر این محدودیت، شرکت‌های دیگه نمی‌تونن از انجین خودشون توی iOS استفاده کنن

توی حالت عادی، گوگل از یه انجین به اسم Blink استفاده میکنه
و فایرفاکس هم انجین خاص خودش به اسم Gecko رو داره
اما وقتی که پای iOS درمیون میاد، WebKit به تنها گزینه تبدیل میشه

البته شرکت‌های سازنده مرورگرها می‌تونن یه سری تغییرات جزئی توی انجین ایجاد کنن اما طبیعتا دستشون خیلی باز نیست

در نتیجه، کروم یا فایرفاکسی که روی iOS می‌بینید، در حقیقت همون سافاریه که چادر گل‌گلی تنش کرده و اون زیر داره به ریش دولوپر و یوزر می‌خنده

نکته تکمیلی: این قضیه فقط توی iOS وجود داره و برای macOS شرکت‌ها می‌تونن از انجین خودشون استفاده کنن و محدودیتی در کار نیست

<Erfan.tsx>

🆔 @MdDaily
🗿2😐1🆒1😡1