| Erfan's Notes | – Telegram
| Erfan's Notes |
192 subscribers
81 photos
10 videos
101 links
Download Telegram
جاوا اسکریپت زبان عجیبی هست، انحصار فرانت‌اند وب رو در اختیار داره و کل دنیا ازش استفاده می‌کنند، ولی هنوز که هنوزه متدی برای تولید عدد رندوم در بازه مشخص نداره و توی همه پروژه‌ها باید از استک‌اورفلو کپی‌پیست بشه

هنوز که هنوزه متدی برای shuffle کردن آرایه نداره و باید متد تعریف بشه

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

هنوز که هنوزه میشه 🦧 و 🥒 و true و 5 رو باهم جمع کرد

هنوز که هنوزه متد sleep نداره و باید به تایم‌اوت و کال‌بک بسنده کرد

هنوز که هنوزه متد sort روی آرایه عددی، به صورت استرینگی کار می‌کنه

هنوز که هنوزه توافقی سر اینکه نفی باید 0 باشه یا false یا null یا undefined یا -1 یا … وجود نداره و ! همه رو شامل می‌شه

و حتی NaN هم با NaN برابر نیست

و در نهایت بعد از این همه سال، نباید سرچ من هنوز این باشه:
JS generate random number in range
🔥13
نسخه بتا 4.0.0 از JQuery ریلیز شده که می‌تونید تغییراتش رو اینجا ببینید

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

مثل مقایسه کمپانی های تولید گوشی دکمه‌ای ساده هست، که هنوز OS شون رو آپدیت کنند…
قصد دارم بعد از اتمام پروژه فعلی، برای تفریح یک دوره آموزشی جدید ضبط کنم، بیشتر قصد دارید چه موضوعی باشه؟
Anonymous Poll
42%
ادامه دوره توسعه ربات
56%
دوره توسعه وب‌اپ های TWA برای تلگرام
31%
دوره VueJS
🔥14
مدت کوتاهی می‌شه که روی MacOS هستم و از اونجایی که ۸ سال اخیر رو تماما روی گنو/لینوکس با i3wm بودم(هنوز هم هستم)، استفاده از MacOS بدون Tiling WM و شورتکات‌ها و ... این مدت برام واقعا عذاب‌آور بود، تا اینکه بالاخره نرم‌افزار Yabai و skhd و Karabiner و Raycast رو نصب و کانفیگ کردم

نرم‌افزار Yabai در اصل شاهکاری هست که Tiling WM رو به MacOS میاره و دقیقا مثل i3wm و سایر Tiling WM ها،‌ پنجره‌های شما رو به صورت خودکار (مثل تصویر بالا) مدیریت می‌کنه

نرم‌افزار skhd یک سرویس و daemon ساده برای تعریف شورتکات کیبورد هست و نمونه شورتکات‌های تعریف شده رو هم می‌تونید در تصویر ببینید، در اصل ترکیب skhd با yabai باعث می‌شه که به لحاظ شورتکات کیبوردی هم به i3wm برسیم

نرم‌افزار Karabiner یک نرم‌افزار کامل و پیشرفته برای Remap کردن دکمه های کیبورد هست و سناریو های پیشرفته‌ای رو ساپورت می‌کنه، از جمله مفیدترین کارهایی که باهاش کردم دکمه های مسخره Command و Control و Option و ... در MacOS بوده رو تغییر دادم به شکلی که قبلا عادت داشتم

نرم‌افزار Raycast هم در اصل همون Rofi هست ولی با ظاهر شیک و برای آدم های پولدار (البته ما نسخه رایگانش رو استفاده می‌کنیم و پولمون نمی‌رسه)، در اصل یک منوی شناور مثل Rofi هست که می‌تونید با استفاده از اون اپلیکیشن‌ها و ... تون رو لانچ کنید

در کل، من به این ستاپ جدیدی که با کمک این 4 نرم‌افزار تونستم کانفیگ کنم، نمره 8 از 10 رو میدم به لحاظ نزدیکی به گنو/لینوکس با i3wm، اگر شما هم روزی ناچار به استفاده از مک شدید می‌تونید با این نرم‌افزارها و کانفیگ‌شون خودتون رو نجات بدید
🔥8321
یکی از پروژه هایی که باعث می‌شه پایتون قابل تحمل‌تر بشه برای برنامه‌نویس هایی مثل من که به {} عادت دارند

https://github.com/mathialo/bython
8542
403 Forbidden
1276
Media is too big
VIEW IN TELEGRAM
🔄 توی این ویدیو سرپایی نگاهی می‌اندازیم به patch شدن کرنل لینوکس توسط کارمند های گوگل، که با جابجایی چند متغیر تونستند باعث 40% افزایش پرفرمنس TCP بشن

همچنین درمورد مفهوم CPU Cache و Burst Length و چند تا چیزمیز مشابه دیگه صحبت می‌کنیم

پ.ن: فرایند ضبط ویدیو رو سعی کردم ساده‌تر کنم و دست‌انداز های مسیر رو کم‌تر کنم تا ویدیوهای بیشتری بتونم ضبط کنم، از بابت کیفیت متوسط صدا و عدم ادیت مناسب پیشاپیش دلجویی می‌کنم
Please open Telegram to view this post
VIEW IN TELEGRAM
832
ظاهرا اپل اخیرا یک پروژه اوپن سورس جدیدی رو منتشر کرده به اسم PKL که مخفف Pickle یا همون خیارشور هست

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

در واقع، بیشتر شبیه یک transpiler هست که ورودی رو به سینتکس خودش میگیره و خروجی رو به صورت JSON یا Yaml یا XML یا ... ترنسپایل می‌کنه و تحویل میده

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

داخلش هم الگوبرداری هایی از Typenoscript و Zod دیده می‌شه برای تایپ‌سیف بودن و تایپ‌چک، که کمی آشناتر می‌کنه این ابزار رو برای دولوپر های جاوا اسکریپت

دوست داشتید می‌تونید سینتکس‌اش رو یاد بگیرید و استفاده کنید، برای من تنها نکته مثبتش اینه که اپل هم کم‌کم داره به سمت اوپن‌سورس کردن پیش می‌ره و نشونه خوبی هست

pkl-lang.org/
6
احتمالا شما هم مثل من کانال ElectroBoom رو در یوتیوب سابسکرایب دارید، یا حداقل یکی از ویدیو های این شخص رو دیدید

معمولا توی همه ویدیوهاش هم یک برق گرفتگی جذابی داره

حالا نکته جالب اینجاست که با این ویدیو از BBC متوجه شدم که ایشون ایرانی-کانادایی هستند و مصاحبه‌شون هم فارسی هست، توصیه می‌کنم ببینید

و مورد بعدی هم این هست که، ایشون با ۷ میلیون سابسکرایبر توی یوتیوب، فکر کنم بزرگ‌ترین یوتیوبر ایرانی ایشون هستند، نه چرندیاتی مثل …

https://youtu.be/c9oqAbaXisg
12
به مناسبت ریلیز شدن نسخه 1.1 از BunJS، روی سیستم نصب کردمش و یک بنچمارکی ازش گرفتم در مقایسه با OpenSwoole عزیز که در عکس بالا می‌تونیم ببینیم

در حالت بنچمارک Single Thread:
بان: 220 هزار درخواست بر ثانیه
اوپن‌سوله: 148 هزار درخواست بر ثانیه

در حالت بنچمارک 8 ترد:
بان:‌ 146 هزار درخواست بر ثانیه
اوپن‌سوله: 166 هزار درخواست بر ثانیه

در حالت کلی، نزدیک به هم هستند و نکته خنده‌دار این هست که کل دنیا و JS کارها بابت پرفرمنس Bun هایپ شدند و معتقدند یه چیز انقلابی هست، با این وجود OpenSwoole ای که ده ساله همین پرفرمنس رو میده یه عده معتقدن PHP مرده 😏

پ.ن: این پست رو سومین بار هست که می‌فرستم، دو بار قبلی تصویر اشتباهی فرستاده بودم
پ.ن۲: طبیعی هست که پرفرمنس JS در حالت سینگل ترد بالاتر باشه چون خودش هم تک ترد Async هست و مولتی Instance نیست
پ.ن۳: انقدر باگ ZeroDay و مشکلات امنیتی و ... توی این هفته اخیر توی دنیا تکنولوژی پیدا شده،‌ که نمی‌دونم از کدوم بنویسم، خودتون برید بخونید
Please open Telegram to view this post
VIEW IN TELEGRAM
721
این ویدیو رو توصیه می‌کنم حتما ببینید، یک ویدیو با کیفیت و ارزشمند به تمام معناست، هم به لحاظ محتوایی و هم داستانی و اجرایی واقعا خوبه

موضوع ویدیو هم درباره پورت کردن Dot Net Framework برای ویندوز 95 هست، کاری که خود مایکروسافت از روی تنبلی یا … بیخیالش شد و ساپورت دات نت از ویندوز 98 به بعد شروع شد

https://youtu.be/CTUMNtKQLl8
44
سورس‌کد MS-DOS نسخه های 1.25 و 2.0 و 4.0 توی گیت‌هاب به صورت اوپن‌سورس منتشر شده

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

https://github.com/microsoft/MS-DOS
11
ظاهرا یک نفر بر بستر بلاکچین بیت‌کوین، برای انتقال 6 دلار، حدود 100 هزار دلار کمیسیون داده، تنها حدسی که می‌شه زد اینه که جای فیلد های Amount و Fee رو اشتباه زده 😅

دفعه بعدی که احساس کردید بدشانس هستید، یاد این بیوفتید که برای انتقال 300 هزار تومن، حدود 6 میلیارد تومن کارمزد انتقال ندادید 😵‍💫

لینک تراکنش
Please open Telegram to view this post
VIEW IN TELEGRAM
8
⭕️ دوره آموزش برنامه‌نویسی ربات تلگرام

💠 در این دوره به آموزش ربات‌نویسی تلگرام می‌پردازیم، از مباحث پایه و عمومی شروع می‌کنیم و مفاهیم رو یاد می‌گیریم، بعد یک ربات کامل رو پیاده‌سازی می‌کنیم.
⭕️ دوره آموزش Spline

💠 دوره آموزش نرم‌افزار طراحی سه‌بعدی اسپلاین (Spline) با محوریت طراحی وبسایت سه‌بعدی
| Erfan's Notes | via @DevelopixBot
⭕️ دوره آموزش Spline 💠 دوره آموزش نرم‌افزار طراحی سه‌بعدی اسپلاین (Spline) با محوریت طراحی وبسایت سه‌بعدی
دوره آموزش اسپلاین (طراحی وب سه‌بعدی) که حدود دو سال پیش ضبط کرده بودم رو منتشر کردم و می‌تونید در کالکشن بالا ببینید
This media is not supported in your browser
VIEW IN TELEGRAM
📱 یک افزونه ایرانی باحال برای VSCode برای ارور های Typenoscript (:

🔹 لینک دانلود و نصب
Please open Telegram to view this post
VIEW IN TELEGRAM
1
من معمولا اکثر زبان‌هایی که به‌صورت روزمره باهاشون سر و کار دارم، مفسری هستند، احتمالا شما هم JS و PHP و Python و زبان های مفسری مشابه کار می‌کنید

همونطور که می‌دونید، من طرفدار شدید پرفورمنس و بهینه‌سازی کد هستم و حتی پست هایی هم درمورد بنچمارک بین فریمورک‌ها و زبان‌ها گذاشتم قبلا که در اون‌ها:

سناریوی فرضی ما برای بنچمارک، یک سایت هست که IO داره و Database داره و Network داره، در واقع اکثر زمانی که تلف می‌کنه سر IO Bound Task ها هست همونطوری که توی این پست هم توضیح دادم

ولی اخیرا برای یک پروژه‌ای به یک تسکی خوردیم که CPU Bound خیلی سنگین بود و Memory Bound هم بود، در واقع نیاز داشتیم که روی دیتاست با حجم 12M شهر/روستا iterate کنیم و نسبت به زبان کشور، از بین 20M اسم که به زبان‌های مختلف برای اون شهر/روستا بود، اسم محلی‌اش رو پیدا کنیم

این رو من با دیتاست کوچک‌تری که فقط برای ایران بود 200K شهر/روستا و 200K هم اسم متناظر، من با PHP نوشتم و نتیجه معقول بود و حدود 10-12 ثانیه طول می‌کشید

ولی برای اینکه IO به صورت Async باشه با JS بازنویسی کردم و به 7-8 ثانیه رسیدم با دیتای 200K x 200K

حالا وقتش بود که با دیتاست 20M x 12M تست کنیم، نهایتا باید 10-15 دقیقه طول می‌کشید، درسته؟ نه! طبق محاسباتی که کردیم، حدود 3-4 روز طول می‌کشید تا بتونه این دیتا رو بخونه و پارس کنه و مپ کنه و فیلتر کنه و اسم متناظر رو پیدا کنه 🤣

اینجا بود که یکی از دوست های Rust کارم به دادم رسید و با زبان کامپایلری Rust، همون کد JS ای که نوشته بودم رو با Rust بازنویسی کرد، نتیجه به نظرتون چی شد؟ از 3-4 روز به 10 ثانیه کاهش پیدا کرد ☺️

البته بازنویسی‌ای که کرد، بسیاری از مفاهیم رو به شکل بهینه‌تری در سطوح پایین هندل کرد و خیلی از بارها و overhead ها رو برداشت، مثلا در نسخه JS مصرف رم حدود 24GB رسیده بود بعد از دوساعت اجرا، ولی نسخه Rust کلا 4GB رم مصرف می‌کرد و کلا 10 ثانیه طول می‌کشید روی دیتاست کامل 🎉

نتیجه ماجرا این هست که حس می‌کنم کم‌کم باید یک زبان کامپایلری هم به چرخه زبان هایی که روزمره باهاشون کار می‌کنیم، اضافه کنیم چون واقعا تفاوت خیلی خیلی زیادی هست در کارهای CPU Bound بین‌شون، تفاوتی مثل ۳-۴ روز و ۱۰ ثانیه 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from TechTube 𝕏 تک توب
گوگل در نسخه 128 مرورگر کروم که در حال حاضر ازمایشی هست، نسخه کوچکی از هوش مصنوعی Gemini رو قرار داده که به صورت افلاین و روی خود دستگاه اجرا میشه و به توسعه دهندگان سایتها امکان استفاده از این مدل رو به صورت مجانی برای کاربردهایی مثل ترجمه، خلاصه سازی و دیگر سوالات به نسبت ساده رو میده.

🔎 mortenjust

📍 @TechTube